Unity-Statische Konstanteneigenschaft Injektion

Ich habe zwei Klassen, eine, die legt den container mit der Registrierung Arten und eine davon enthält eine statische Eigenschaft, die ich möchte einzuspritzen. Mein Problem ist das Eigentum ist nie durch Injektion also, wenn ich eine Methode aufrufen, wird die Eigenschaft immer den Wert 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();
    }
}

Wenn ich entfernen Sie die Abhängigkeit Attribut und in ClassOne eine einfache

ClassTwo.SomeProperty = Container.Resolve<IClass>("ImplOne");

funktioniert es einwandfrei, aber ich möchte wissen, ob es möglich ist, dies zu tun, ohne explizit einen Wert zuweisen der Eigenschaft (also der container injizieren durch Attribute)?

Edit:

Dank. Ich habe entfernt die statische Deklaration von ClassTwo und in ClassOne Hinzugefügt RegisterType und Lösen für ClassTwo und auch InjectionProperty:

Container.RegisterType<IClass, ClassImplOne>("ImplOne", new InjectionProperty("SomeProperty"));

aber es funktioniert immer noch nicht :S

  • Bearbeitet meine Antwort genauer zu sein.
InformationsquelleAutor clicky | 2013-02-28
Schreibe einen Kommentar