2011-07-21 45 views
2

如何通过Spring .NET配置静态类?如何在Spring.NET中配置静态类的属性?

考虑下面的类:

static class Abc 
{ 
    public Interface xyz 
    { 
     get; 
     set; 
    } 

    public void Show() 
    { 
     xyz.show(); 
    } 
} 
+0

为什么你需要静态类?难道你不能创建一个“正常”(非静态)的类,并使用单例作用域来实例化吗? – Marijn

+0

它的工具类似于追踪,所以它是静态的。 – Geeta

+2

这段代码不会编译,因为属性'xyz'和void'Show'是实例成员,不能在静态类中声明。它们也应该声明为静态的。 – Marijn

回答

2

也许一种变通方法可以帮助.. 这不是一个静态类,但它像一个

namespace Nyan { 
    public class Util{ 
     protected Util(){} //to avoid accidental instatiation 

     public static string DATETIMEFORMAT = "HH:mm:ss"; 

     public static DateTime parseDate(string sDate) 
     { 
      return DateTime.ParseExact(sDate, DATETIMEFORMAT, CultureInfo.InvariantCulture); 
     } 
    } 
} 

<object id="Util" type="Nyan.Util, Nyan" singleton="true"> 
    <property name="DATETIMEFORMAT" value="HH-mm-ss" /> 
</object 

,并使用像任何其他静态类:

protected void Page_Load(object sender, EventArgs e) 
{ 
    DateTime sDate = Nyan.Util.parseDate("15-15-15"); //parsed with injected format 
} 
+0

是的,它可以部分解决我的问题。这里parseDate()是一个静态的,所以它会工作。但在我的情况下,Show()不是一个静态函数。所以我该如何打电话给它。 – Geeta

+1

???您不能在静态类上使用非静态方法或属性! – Jaguar

+0

确切地说 - 完全错过了第一次阅读这个问题的时候.. – Marijn