注册通用的Autofac工厂

时间:2018-06-20 18:41:37

标签: c# asp.net .net dependency-injection autofac

我有ICommand和ICommandHandler<TCommand>接口,我想注入工厂。您能检查一下并让我知道我做错了吗?我这样做如下:

CommandBus-在这里我收到错误消息(显示在下面的黑引号中)

var handler = _context.Resolve<ICommandHandler<TCommand>>();

我在AutofacModule类中注册命令处理程序

builder.RegisterType<CreateMakeCommandHandler>()
    .As<ICommandHandler<CreateBaseCommand<MakeEntity>>>();
  

Autofac.Core.Registration.ComponentNotRegisteredException:所请求的服务'Shop.Services.CommandHandlers.BaseCommandHandlers.ICommandHandler'1 [[Shop.Domain.Commands.Model.CreateModelCommand'未注册。为避免此异常,请注册一个组件以提供服务,使用IsRegistered()检查服务注册,或使用ResolveOptional()方法解决可选的依赖项。      在Shop.Services.CommandHandlers.BaseCommandHandlers.CommandBus.d__7'1.MoveNext()中的C:\ Projects \ Shop \ Shop \ Shop \ Services \ CommandHandlers \ BaseCommandHandlers \ CommandBus.cs:line 31

谢谢。

编辑:

public class CreateBaseCommand<TEntity> : BaseCommand where TEntity : BaseEntity
{}

0 个答案:

没有答案