Einheit, RegisterType<> und Singleton-Objekte

Ich bin mit Unity zu instanziieren Objekte und ich finde, dass egal was ich versuche, Einheit ist das erstellen von singletons für meine Objekte.

Laut Dokumentation:
http://msdn.microsoft.com/en-us/library/dd203242.aspx#Y500

Mit dem folgenden code sollte ich immer mit einer anderen Instanz jedes mal, wenn das interface wird aufgelöst.

IUnityContainer myContainer = new UnityContainer();  

//Register a default (un-named) type mapping with a transient lifetime  
myContainer.RegisterType<IMyObject, MyRealObject>();  
//Following code will return a new instance of MyRealObject  
myContainer.Resolve<IMyObject>();  

Sondern ich bin immer ein singleton-Instanz.

Unten ist meine Erklärung. Global.asax

//This should get me a singleton  
container.RegisterType<IRetailerService, RetailerService>(new ContainerControlledLifetimeManager(), new InjectionConstructor());  
//This is the one giving me trouble.
container.RegisterType<IInStoreRetailersViewModelBuilder, InStoreRetailersViewModelBuilder>(new InjectionConstructor(container.Resolve<IRetailerService>()));  
container.RegisterType<CollectController>(new InjectionConstructor(container.Resolve<IInStoreRetailersViewModelBuilder>()));  

Controller

private readonly IInStoreRetailersViewModelBuilder _inStoreRetailersViewModelBuilder;  

public CollectController(IInStoreRetailersViewModelBuilder inStoreRetailersViewModelBuilder)  
{  
    this._inStoreRetailersViewModelBuilder = inStoreRetailersViewModelBuilder;  
}  

public ActionResult Index()  
{  
    InStoreViewModel viewModel = this._inStoreRetailersViewModelBuilder.WithRetailers().WithPostcode().Build();  
}  

Wenn ich öffnen Chrome und führen Sie den Index-Aktion, und dann gehe ich und öffne den internet explorer und rufen Sie die Index-Aktion, auf den zweiten Aufruf in den Konstruktor der inStoreRetailersViewModelBuilder parameter, wird injiziert, ist die eine erzeugt, die auf den ersten Aufruf (mit Chrome).

Ich habe versucht, mit der PerResolveLifetimeManager() und auch die PerHttpRequestLifetime() aus diesem thread: MVC, EF - DataContext singleton-Instanz Pro Web-Anfrage, in der Einheit

Aber es scheint nichts zu geben, mir eine brand neue Instanz. Jemand kann etwas Licht auf, was ich vielleicht falsch hier?

InformationsquelleAutor Yag | 2011-08-09

Schreibe einen Kommentar