Injeção de propriedade estática de unidade
Eu tenho duas classes, uma que configura o contêiner registrando tipos e um que contém uma propriedade estática na qual desejo injetar. Meu problema é que a propriedade nunca é definida por injeção, portanto, quando eu chamo um método, a propriedade é sempre nula.
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();
}
}
Se eu remover o atributo Dependency e no ClassOne, faça um simples
ClassTwo.SomeProperty = Container.Resolve<IClass>("ImplOne");
funciona bem, mas eu quero saber se é possível fazer isso sem explicitamente atribuir um valor à propriedade (ou seja, o recipiente pode injetar através de atributos)?
Editar:
Obrigado. Eu removi a declaração estática da ClassTwo e na ClassOne adicionei RegisterType e Resolve para ClassTwo e também adicionei InjectionProperty:
Container.RegisterType<IClass, ClassImplOne>("ImplOne", new InjectionProperty("SomeProperty"));
mas ainda não funciona: S