可能是一个简单的问题,但我在文档或SO中没有找到任何直接回答它的内容。
我不得不第一次使用Ninject When(Func<IRequest, bool> condition)
扩展方法,并且因为空对象异常而被挂断了一会儿。我发现IRequest.Target
属性有时是空的,我也看到过其他一些使用When
检查空Target
的例子。
我对Ninject在没有Target
值的情况下执行回调的条件很好奇。当创建表单
Bind<T1>()
.To<T2>
.When(r => SomeTest(r.Target));
我最初错误地认为在执行绑定时总会有一个有效的T1
类型的Target
。
根对象为空,因为在本例中没有目标。(kernel.Get<MyCompositionRoot>()
)