Я почти уверен, что RegisterGeneric
требуется конкретный тип реализации для закрытия (например, Handler<T>
. Я не думаю, что вы можете использовать такой интерфейс, как у вас.
Вы можете достичь желаемого с помощью следующего альтернативного регистрационного кода.
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
.AsClosedTypesOf(typeof(IHandle<>));
_container = builder.Build();
var commandHandler1 = _container.Resolve<IHandle<Command1>>();
var commandHandler2 = _container.Resolve<IHandle<Command2>>();
Я добавил рабочую версию этого в AutofacAnswers на GitHub.