考虑以下测试:TypedFactoryFacility:传递null参数
[Test]
public void Create_ServiceWithDynamicDependency_Created()
{
// arrange
IWindsorContainer container = new WindsorContainer();
container.AddFacility<TypedFactoryFacility>();
container.Register(Component.For<IServiceFactory>().AsFactory());
container.Register(Component.For<ServiceWithDynamicDependency>().LifeStyle.Transient);
container.Register(Component.For<SomethingStatic>().LifeStyle.Transient);
var factory = container.Resolve<IServiceFactory>();
// act
ServiceWithDynamicDependency serviceWithDynamicDependency = factory.Create(null);
// assert
Assert.That(serviceWithDynamicDependency, Is.Not.Null);
}
这失败,出现以下异常:无法解析非可选依赖于“Testing.Windsor.Factory.ServiceWithDynamicDependency”(Testing.Windsor.Factory .ServiceWithDynamicDependency)。参数“somethingDynamic”类型“System.String”
如果我更换与此断言部分:
ServiceWithDynamicDependency serviceWithDynamicDependency = factory.Create("foo");
预期的组件解决。有没有人知道这个解决方法或我必须手动滚动接受空参数的工厂?
+1 this解释了很多 – ktutnik 2012-07-10 06:52:53