У меня проблема при использовании MassTransit v5.1.5 со стандартным DI ASP.NET Core.У меня есть следующий код:
var consumers = typeof(CompanyApplicationService).Assembly
.GetTypes()
.Where(t => typeof(IConsumer).IsAssignableFrom(t))
.ToList();
consumers.ForEach(
c => services.AddSingleton(typeof(IConsumer), c));
cqrsConfig.ServiceCollectionConfig = (x) =>
{
consumers.ForEach(consumer => x.AddConsumer<consumer>());
};
Так что у меня есть отдельная сборка, где мои реализации IConsumer<T>
.У меня есть эти потребители загружены в список, но когда я пытаюсь добавить их, используя метод MassTransit.ExtensionsDependencyInjectionIntegration.IServiceCollectionConfigurator.AddConsumer<T>()
, я не могу передать тип, который я ранее загружал.Итак, есть какие-нибудь идеи по этому поводу?
Я пытался зарегистрировать потребителей как:
cqrsConfig.InMemoryBusConfig = (c) =>
{
var host = c.Host;
c.ReceiveEndpoint(busName, ep =>
{
ep.LoadFrom(services.BuildServiceProvider());
});
};
, но это также не работает для меня.