将参数传递给深层激活

时间:2012-01-02 17:41:33

标签: c# ninject

我有以下代码:

class Controller
{
     public Controller(Listener audioListener,
                       Listener videoListener)
     {}
}

class Listener
{
     public Listener(int port)
     {
          Console.WriteLine(port);
     }
}

现在我需要Listener使用audioPort进行一次解析,而另一次使用videoPort进行解析。

var audioPort = 1330;
var videoPort = 1331;
var controller = kernel.Get<Controller>(); // should print 1330 and 1331

到目前为止,我在与WithConstructorArgument进行绑定时进行了回调。我想知道我是否可以在实际解析类型时设置回调?

1 个答案:

答案 0 :(得分:0)

我做了一点研究,显然问题不同。

参数是运行时依赖项。我想这样做的方式与服务定位器模式有关,这在测试中很复杂。

here解释了使用运行时参数的更好方法。