我正在尝试将DI与我的消费者类一起使用而没有成功.
@H_301_14@我的消费者阶层:
public class TakeMeasureConsumer : IConsumer<TakeMeasure> { private IUnitOfWorkAsync _uow; private IInstrumentOutputDomainService _instrumentOutputDomainService; public TakeMeasureConsumer(IUnitOfWorkAsync uow,IInstrumentOutputDomainService instrumentOutputDomainService) { _uow = uow; _instrumentOutputDomainService = instrumentOutputDomainService; } public async Task Consume(ConsumeContext<TakeMeasure> context) { var instrumentOutput = Mapper.Map<InstrumentOutput>(context.Message); _instrumentOutputDomainService.Insert(instrumentOutput); await _uow.SaveChangesAsync(); } }
protected override void Load(ContainerBuilder builder) { builder.Register(context => Bus.Factory.CreateUsingRabbitMq(cfg => { var host = cfg.Host(new Uri("rabbitmq://localhost/"),h => { h.Username("guest"); h.Password("guest"); }); cfg.ReceiveEndpoint(host,"intrument_take_measure",e => { // Must be a non abastract type with a parameterless constructor.... e.Consumer<TakeMeasureConsumer>(); }); })) .SingleInstance() .As<IBusControl>() .As<IBus>();
任何帮助将不胜感激,我真的不知道如何注册我的消费者……
谢谢