У меня есть функция, которая разрешает службу с помощью autofa c IComponentContext Resolve
Startup.cs
public void ConfigureContainer(ContainerBuilder builder)
{
builder.RegisterAssemblyTypes(Assembly.GetEntryAssembly())
.AsImplementedInterfaces();
builder.AddDispatchers();
}
builder.AddDispatchers ():
public static class Extensions
{
public static void AddDispatchers(this ContainerBuilder builder)
{
builder.RegisterType<CommandDispatcher>().As<ICommandDispatcher>();
builder.RegisterType<Dispatcher>().As<IDispatcher>();
builder.RegisterType<QueryDispatcher>().As<IQueryDispatcher>();
}
}
Динамически выбирается обработчик по типу
public class QueryDispatcher : IQueryDispatcher
{
private readonly IComponentContext _context;
public QueryDispatcher(IComponentContext context)
{
_context = context;
}
public async Task<TResult> QueryAsync<TResult>(IQuery<TResult> query)
{
var handlerType = typeof(IQueryHandler<,>)
.MakeGenericType(query.GetType(), typeof(TResult));
dynamic handler = _context.Resolve(handlerType);
return await handler.HandleAsync((dynamic)query);
}
}
Что мне нужно сделать, чтобы перенести его на встроенный ASP. NET Core DI?