2011-07-21 85 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