如何解决使用统一容器获取BusHealth的实例
如何在Prism中使用Unity容器IoC或不使用IoC容器来获取bushealth的实例? Mass Transit依赖于Microsoft Dependency Injection,但是我使用Bus Factory来创建总线的实例,并且它总是不适合将DI用于旧代码。
_busControl = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
sbc.Host(host,h =>
{
h.Username(username);
h.Password(password);
h.RequestedConnectionTimeout(timeout);
});
sbc.ReceiveEndpoint(e =>
{
...
});
解决方法
您可以创建BusHealth
实例,并在构造函数上传递总线实例,也可以将IBusHealth
作为服务注册到容器中,实现类型为BusHealth
(要求IBus
也要注册,因为它是必需的构造函数依赖项。
然后,您可以在应用程序中使用IBusHealth
界面检查总线的运行状况。
var busHealth = new BusHealth("bus");
_busControl = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
sbc.ConnectBusObserver(busHealth);
sbc.ConnectEndpointConfigurationObserver(busHealth);
sbc.Host(host,h =>
{
h.Username(username);
h.Password(password);
h.RequestedConnectionTimeout(timeout);
});
sbc.ReceiveEndpoint(e =>
{
// ...
});
});
当然,这并不能解释总线/运行状况对象如何进入您的容器,但我认为您已经明白了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。