2012-02-28 75 views
1

在NServiceBus.Production配置文件中运行时,我遇到了nsb组上提到的this errorNServiceBus.ObjectBuilder.Ninject严重错误

只是想知道它是否是已知问题(Remo?:-)),因为它目前会阻止我在nsb中使用ninject。

NServiceBus.Ninject-CI.3.0.2044 nuget。

非常感谢!

2012-02-28 15:24:18,204 [Worker.8] WARN NServiceBus.Unicast.Transport.Transacti 
onal.TransactionalTransport [(null)] <(null)> - Failed raising 'transport messag 
e received' event for message with ID=02e57b0c-f345-46ae-a095-f52a4cfc0cfb\2071 
System.NullReferenceException: Object reference not set to an instance of an obj 
ect. 
    at Ninject.Injection.DynamicMethodInjectorFactory.EmitMethodCall(ILGenerator 
il, MethodInfo method) in c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject 
\Injection\DynamicMethodInjectorFactory.cs:line 130 

回答

2

我没有为Ninject编写NSB ObjectBuilder。从例外情况我可以看出,Ninject没有注入房产,因为没有公共设置者。如果Ninject不变,则不会发生这种情况,因为除非明确告知Ninject不应过滤任何公共成员,否则这些属性将被过滤。

我简要介绍了NinjectObjectBuilder。它增加了新的启发式,似乎它不会过滤私人设置者的公共属性。这个实现需要一些改变。

但我认为这不会解决您的问题,因为您想要注入该属性。正确的做法是将二传手改为公开。或者,您可以更改设置以允许注册privat成员。 Settings.InjectNonPublic = true;但我不建议这样做。

+0

感谢雷莫,并再次感谢您所有目前的工作ninject!我希望你知道关于NSB适配器的东西,这个答案有帮助。皮特。 – 2012-02-29 09:12:53

相关问题