2017-09-22 1 views
1

Ich habe eine Schnittstelle: IFoo Zwei diese Schnittstelle implementierenden Klassen: FooOne und FooTwoEinheit - Injizieren Objekt verschiedener Klassen für die gleiche Schnittstelle in der gleichen Klasse

Und eine Klasse ClassOne einen IFoo Parameter im Konstruktor empfängt.

Ich habe zwei Methoden MethodOne und methodTwo in Classone.

Wenn ich Methodon nennen brauche ich das Objekt FooOne in ClassOne

Wenn ich MethodTwo Ich brauche in ClassOne das Objekt FooTwo nennen

Wie ich Einheit so konfigurieren, dass ClassOne eine FooOne Instanz für Methodon Anruf empfängt und ClassOne erhält ein FooTwo für MethodTwo Aufruf mit nur einem Container ?.

Die Hauptbedingung ist, dass ich ein Objekt zu einem Zeitpunkt entweder FooOne oder FooTwo erstellen muss.

+0

Was auch immer Methodon und MethodTwo tun sollte Ich glaube an den Foo Klassen platziert werden. – tafa

+0

Ich habe eine Anforderung wie dieses Szenario. – Velkumar

+0

Können Sie die 'ClassOne' Klasse anzeigen? –

Antwort

1

Verwenden Registrierung genannt:

container.RegisterType<IFoo, FooOne>("one"); 
container.RegisterType<IFoo, FooTwo>("two"); 

//... 

class Classone 
{ 
    IFoo MethodOne() 
    { 
     return _container.Resolve<IFoo>("one"); 
    } 

    IFoo MethodTwo() 
    { 
     return _container.Resolve<IFoo>("two"); 
    } 
} 
+0

@Velkumar können Sie diese Antwort akzeptieren? – Backs

Verwandte Themen