2017-02-28 43 views
0

我有一種情況,我想在ASP.NET 4 MVC Web應用程序中使用動態構造函數參數來解析類。我正在使用Unity v4.0.1。我需要傳遞給Resolve上的服務的構造函數的值對於每個請求都是不同的,如下所示。Unity Container使用動態參數解析

var obj = new MyObject(); 
container.RegisterType<IMyService, MyService>(
      new PerRequestLifetimeManager(), 
      new InjectionConstructor(obj)); 

我該如何做到這一點?

回答

1

我能夠通過從here獲得幫助如下所示實現它。

註冊我的類型

container.RegisterType<IMyService, MyService>(new PerRequestLifetimeManager()); 

在我Global.asax.cs

protected void Application_BeginRequest() 
{ 
    var obj = new MyObject(); 

    container 
     .Resolve<IMyService>(
      new ParameterOverrides 
       { 
        {"obj", obj}, 
       }.OnType<MyService>() 
     ); 
} 

確保有MyService構造爲

public MyService(MyObject obj){ 
    //do something here 
}