2016-12-13 2 views
1

Der Kürze halber werde ich einige kurze und generalisierte Namenskonventionen verwenden. Wenn ich habe:Einfacher Injector-Parameter an die Fabrik angehängt

public class Factory : IFactory 
{ 
    private readonly string dbConnection; 
    public Factory(string dbConnection) 
    { 
      this.dbConnection= dbConnection; 
    } 

    public IDataContext Create() => new DataContext(dbConnection); 
} 

Die Factory Klasse hat ein Feld, die durch den Konstruktor gesetzt wird. Wie unterstützt Simple Injector die Weitergabe dieses Parameters? Wenn Sie implementieren:

public class Service 
{ 
    private IFactory Factory { get; } 
    public Service(IFactory factory) 
    { 
     Factory = factory; 
    } 

    public void Save() 
    { 
      using(var context = Factory.Create()) 
       context.Insert(...); 
    } 
} 

Der Parameter wird nie bestanden tatsächlich an oder über die Factory, wenn es initialisiert wird oder instanziiert. Wenn Sie die Abhängigkeiten registrieren, sieht es nicht möglich ist:

ContainerFactory.Register<IFactory, Factory>(Lifestyle.Transient); 

Ich wurde in die IEventHandler Schnittstelle suchen, dass abgesehen von Simple Injector ist, die wie es aussieht, dieses Problem zu beheben wäre, aber ist, dass, wie Sie soll in diesem Fall einen Parameter übergeben?

Antwort

0
container.RegisterSingleton<IFactory>(new Factory("constr")); 
+0

Ich werde einen Blick darauf werfen. – Greg

Verwandte Themen