public EmployeeValIDator([Optional] IValIDator<Personname> personnameValIDator = null)
由于升级到Ninject 3.0,此对象的构造失败,并显示一条消息,指出提供程序返回null:
Test method ValIDatorIsolated.Tests.EmployeeValIDatorTest.CreateEmployeeValIDatorTest threw exception:
Ninject.ActivationException: Error activating IValIDator{Personname} using conditional implicit self-binding of IValIDator{Personname}
ProvIDer returned null.
Activation path:
2) Injection of dependency IValIDator{Personname} into parameter personnameValIDator of constructor of type EmployeeValIDator
1) Request for IValIDator{Employee}
Suggestions:
1) Ensure that the provIDer handles creation requests properly.
当参数的默认值存在时,[可选]属性是否仍然保持有效,并且使用可选参数(如此)处理注入的最佳方法是什么?
解决方法 在这种情况下,可选属性被忽略,因为始终有默认值可用 – 但提供的值为null.默认情况下,Null不是允许的值.您可以通过将NinjectSettings.AllowNullinjection设置为true来覆盖此行为.
总结以上是内存溢出为你收集整理的c# – 使用Ninject 3.0的默认参数值全部内容,希望文章能够帮你解决c# – 使用Ninject 3.0的默认参数值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)