在Class2
以下有一個屬性需要在調用GetSomething
之前設置,不過因爲我訪問Class2
時在Class1
的頂部,當屬性爲Something
類時,該屬性始終爲空。我似乎無法弄清楚如何更改我的代碼以在使用屬性之前設置屬性。任何人?如何在初始化靜態類之前初始化靜態屬性?
編輯 我想從form1的構造函數傳遞依賴關係,而不是將其進一步硬編碼到鏈上。
public partial class form1
{
private static readonly ISomeConstructedClass someConstructedClass = Class1.SomeConstructedClass;
public form1()
{
someConstructedClass.SomeDependency = new SomeDependency();
someConstructedClass.Whatever();
}
}
public static class Class1
{
public static readonly ISomething something = (ISomething)Class2.GetSomething("something");
public static ISomeConstructedClass SomeConstructedClass
{
get
{
return something.SomeConstructedClass;
}
}
} .... }
public class Class2
{
public static ISomeDependency SomeDependency
{
get;
set;
}
public static GetSomething(string something)
{
switch(something)
{
case "something":
return new Something(SomeDependency);
}
}
}
public class Something : ISomething
{
public ISomeDependency SomeDependency
{
get;
set;
}
public Something(ISomeDependency someDependency)
{
SomeDependency = someDependency;
}
}
你在哪裏初始化屬性? – SLaks
@SLaks - 我添加了更多的代碼,希望能夠回答你的問題。 –
如果你只是想在form1的構造函數中設置它,你爲什麼要用Class2中的SomeDependency初始化'someConstructedClass'?在將它設置爲'New SomeDependency()'之前,你想要設置什麼? – Cemafor