아래 Class2
은 GetSomething
이 호출되기 전에 설정해야하는 속성이 있습니다. 그러나 의 상단에있는 Class2
에 액세스하기 때문에이 속성은 Something
클래스에 도달하면 항상 null입니다. 속성을 사용하기 전에 설정하기 위해 코드를 변경하는 방법을 알아낼 수 없습니다. 누군가?정적 클래스를 초기화하기 전에 정적 속성을 초기화하는 방법은 무엇입니까?
편집 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'를 초기화하는 이유는 무엇입니까? '새로운 SomeDependency()'로 설정하기 전에 무엇을 설정하고 싶습니까? – Cemafor