【发布时间】:2014-05-14 19:23:25
【问题描述】:
我正在尝试在基于 StructureMap 的应用程序中使用 MassTransit。我已按照 MassTransit 网站提供的代码示例进行操作,但似乎在使其正常工作时遇到了一些问题。
这是我的 StructureMap Registry 类:
using MassTransit;
using StructureMap;
using StructureMap.Configuration.DSL;
using StructureMap.Graph;
using System;
using System.Configuration;
namespace MyApp
{
public class MassTransitRegistry : Registry
{
public MassTransitRegistry()
{
Scan(scan =>
{
scan.AssembliesFromApplicationBaseDirectory(a => a.FullName.StartsWith("MyCompany"));
scan.AddAllTypesOf<IConsumer>();
});
try
{
// Register the ServiceBus.
var bus = ServiceBusFactory.New(sbc =>
{
sbc.UseRabbitMq();
sbc.ReceiveFrom(ConfigurationManager.AppSettings["MassTransitQueue"]);
sbc.UseControlBus();
sbc.UseJsonSerializer();
sbc.SetConcurrentConsumerLimit(12);
sbc.Subscribe(s => s.LoadFrom(ObjectFactory.Container));
});
ObjectFactory.Container.Inject<IServiceBus>(bus);
}
catch (Exception)
{
throw;
}
}
}
}
问题似乎出在 MassTransit.StructureMap 集成 NuGet 包上。看来这个包需要 StructureMap 2.6.4.0。我无法真正更改我的 StructureMap 版本,因为我编写的代码现在可以使用 3.0 中编写 StructureMap 的新方式。
有人知道解决这个问题的方法吗?
问候, 理查德·奥诺拉托
【问题讨论】: