Внедрение статического свойства Unity
У меня есть два класса, один из которых настраивает контейнер путем регистрации типов, а другой содержит статическое свойство, в которое я хочу внедрить. Моя проблема в том, что свойство никогда не устанавливается путем внедрения, поэтому, когда я вызываю для него метод, свойство всегда имеет значение 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 добавил RegisterType и Resolve для ClassTwo, а также добавил InjectionProperty:
Container.RegisterType<IClass, ClassImplOne>("ImplOne", new InjectionProperty("SomeProperty"));
но все равно не работает: S