型を登録してコンテナをセットアップするクラスと、注入したい静的プロパティを含むクラスの 2 つのクラスがあります。私の問題は、プロパティが注入によって設定されることはないため、メソッドを呼び出すと、プロパティは常に null になります。
public class ClassOne
{
public void Method()
{
Container.RegisterType<IClass, ClassImplOne>("ImplOne");
Container.RegisterType<IClass, ClassImplTwo>("ImplTwo");
}
}
public static class ClassTwo
{
[Dependency]
public static IClass SomeProperty { get; set; }
public static void SomeOtherMethod()
{
SomeProperty.AnotherMethod();
}
}
Dependency 属性を削除し、ClassOne で簡単な操作を行うと、
ClassTwo.SomeProperty = Container.Resolve<IClass>("ImplOne");
それは正常に動作しますが、プロパティに値を明示的に割り当てずにこれを行うことができるかどうか (つまり、コンテナーが属性を介して注入できるかどうか) を知りたいですか?
編集:
ありがとう。ClassTwo から静的宣言を削除し、ClassOne に ClassTwo の RegisterType と Resolve を追加し、InjectionProperty も追加しました。
Container.RegisterType<IClass, ClassImplOne>("ImplOne", new InjectionProperty("SomeProperty"));
しかし、それでも機能しません:S