【问题标题】:Unity Container resolve with dynamic parametersUnity Container 使用动态参数解析
【发布时间】:2017-03-05 10:46:51
【问题描述】:

我有一种情况,我想在我的 ASP.NET 4、MVC Web 应用程序中解析一个具有动态构造函数参数的类。我正在使用 Unity v4.0.1。我需要传递给 Resolve 上服务的构造函数的值对于每个请求都不同,如下所示。

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

我如何做到这一点?

【问题讨论】:

    标签: c# .net unity-container


    【解决方案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
    }
    

    【讨论】:

      猜你喜欢
      • 2016-12-29
      • 2012-02-06
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      相关资源
      最近更新 更多