我有两个类,一个通过注册类型来设置容器,另一个包含我想要注入的静态属性。我的问题是该属性永远不会通过注入设置,因此当我在其上调用方法时,该属性始终为空。
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