如果我有以下几点:如何告诉Ninject不要注入我的构造函数参数之一?
public MyClass(IServiceOne serviceOne, IServiceTwo serviceTwo, IServiceThree serviceThree = null)
{
this.serviceOne = serviceOne;
this.serviceTwo = serviceTwo;
this.serviceThree = serviceThree ?? new ServiceThree("some-info");
}
我怎么能告诉Ninject到前两个参数结合,而不是类型IServiceThree的一个?这甚至有可能吗?
我希望serviceThree作为构造函数参数的原因是为了可测试性 - 我需要能够从我的测试中注入模拟。
这是一种设计的气味。你绝不应该允许在构造函数中注入'null'。相反,你应该简单地向构造函数中注入一个'ServiceThree'实例。国际海事组织,Ninject应该永远不会有“AllowNullInjection”属性。 – Steven 2013-03-03 12:57:59
如何仅用两个参数重载构造函数,并特别指出NInject要使用的重载? '[注入] public MyClass(IServiceOne serviceOne,IServiceTwo serviceTwo)' – PPC 2015-06-18 01:50:22