Festlegen des parameterlosen Konstruktors als Injektionskonstruktor bei der Containererstellung

8

Ich habe eine Klasse mit zwei Ctors. Eine parameterlose und eine mit Parametern.
Unity wird standardmäßig die grobe Methode wählen und auf den letzten Punkt gehen.

Wie kann ich definieren, was ctor zu verwenden ist (ich möchte parameterlos), ohne die Abhängigkeit von Unity in meinen Klassen hinzuzufügen? Ich denke, es ist möglich, es in meiner Container-Erstellung zu tun, aber ich weiß nicht wie.

Momentan sieht mein Registrierungseintrag so aus:

%Vor%

UPDATE
Ich versuche, die Programmierung in XML (Konfigurationsdatei) so weit wie möglich zu vermeiden.

EXTRA
Wie würde man einen Konstruktor mit einem Parameter registrieren (welcher wiederum injiziert werden soll)?
Angenommen, ILoggerService ist bereits registriert und ich möchte den Konstruktor

verwenden %Vor%     
Boris Callens 22.12.2009, 10:53
quelle

3 Antworten

16

Ich habe momentan keine Unity in der Nähe, aber soweit ich mich erinnere, kannst du so etwas tun:

%Vor%     
Mark Seemann 22.12.2009, 11:04
quelle
0

Ich denke, Sie können in Ihrer Registrierung auch einen InjectionConstructor (einschließlich ResolvedParameter<T> s für die Parameter) übergeben. Hast du das probiert?

    
Botz3000 22.12.2009 10:58
quelle
0

Sie können das InjectionConstructor-Attribut auf den Konstruktor anwenden, den Sie verwenden möchten. Dies hat jedoch den Nachteil, dass einige Containerkonfigurationen von einem zentralen Standort entfernt werden.

    
Lee 22.12.2009 11:09
quelle