Unity, RegisterType<> и Singleton objects

Я использую Unity, чтобы инстанцировать некоторые объекты, и я нахожу, что что бы я ни пытался, Unity создает синглоны для моих объектов.

Согласно документации: http://msdn.microsoft.com/en-us/library/dd203242.aspx#Y500

Со следующим кодом я должен получать другой экземпляр каждый раз при разрешении интерфейса.

IUnityContainer myContainer = new UnityContainer();  

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

Но вместо этого я получаю один экземпляр.

Ниже моя декларация. Global.asax

// This should get me a singleton  
container.RegisterType(new ContainerControlledLifetimeManager(), new InjectionConstructor());  
// This is the one giving me trouble.
container.RegisterType(new InjectionConstructor(container.Resolve()));  
container.RegisterType(new InjectionConstructor(container.Resolve()));  

Controller

private readonly IInStoreRetailersViewModelBuilder _inStoreRetailersViewModelBuilder;  

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

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

Если я открою Chrome и запущу действие Index, а затем открою Internet Explorer и вызову действие Index, то при втором вызове в конструкторе будет сгенерирован параметр inStoreRetailersViewModelBuilder при первом вызове (с Chrome).

Я пробовал использовать PerResolveLifetimeManager() и даже PerHttpRequestLifetime() из этого потока: MVC, EF - одноэлементный экземпляр DataContext Per-Web-Request in Unity

Но, кажется, ничто не дает мне совершенно нового экземпляра. Кто-нибудь может пролить свет на то, что я здесь делаю неправильно?

6
задан Community 23 May 2017 в 12:34
поделиться