如何解决如何访问NServiceBus依赖项注入容器?
我正在使用NServiceBus 5的默认依赖项注入功能。我想在端点配置中注册一个依赖IBus的单例。
例如:
configuration.RegisterComponents(r =>
{
r.RegisterSingleton(new MyDependency(resolveIBus()));
...
}
如何使用NServiceBus开箱即用的依赖项注入来解析上述pseduo代码中的IBus实例?
解决方法
正确的语法为:
configuration.RegisterComponents(r =>
{
r.ConfigureComponent<MyDependency>(DependencyLifecycle.SingleInstance);
...
}
依赖机制将调查MyDependency类型的构造函数,并选择可以完全解决的最简单的构造函数。因此,您需要像这样创建MyDependency
类型:
public class MyDependency
{
public MyDependency(IBus bus)
{
}
}
中的更多信息
如果仅在运行时知道所需的服务类型,则可以像这样使用IServiceProvider
服务:
public class MyDependency
{
public MyDependency(IServiceProvider serviceProvider)
{
...
var myService = (IMyService)serviceProvider.GetService(typeof(IMyService));
...
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。