Autofac et MediatR en cours d'utilisation. Je suis en train d'enregistrer gestionnaire dans ContainerBuilder, mais il est toujours l'erreurGestionnaire de registre dans autofac
instanciation type d'implémentation 'DataSourceHandler`2 [TEntity, TModel]' pour le type de service « MediatR.IRequestHandler'2 [DataSourceQuery'2 [ TEntity, TModel], Kendo.Mvc.UI.DataSourceResult] »
Ma Recherche:
public class DataSourceQuery<TEntity, TModel> : IRequest<DataSourceResult>
where TEntity : class, IEntityBase
where TModel : class
{
public DataSourceRequest Request { get; set; }
}
Handler:
public class DataSourceHandler<TEntity, TModel> : IRequestHandler<DataSourceQuery<TEntity, TModel>, DataSourceResult>
where TEntity : class, IEntityBase
where TModel : class
{
private readonly ApplicationDbContext context;
public DataSourceHandler(ApplicationDbContext context)
{
this.context = context;
}
public DataSourceResult Handle(DataSourceQuery<TEntity, TModel> message)
{
return context.Set<TEntity>()
.ProjectTo<TModel>()
.ToDataSourceResult(message.Request);
}
}
passe a tenté d'enregistrer de différentes manières comme:
builder.RegisterGeneric(typeof(DataSourceHandler<,>)).As(typeof(IRequestHandler<,>))
.AsImplementedInterfaces();
builder.RegisterGeneric(typeof(DataSourceHandler<,>)).As(typeof(IRequestHandler<,>))
.InstancePerDependency();
builder.RegisterAssemblyTypes(typeof(DataSourceHandler<,>).GetTypeInfo().Assembly)
.AsClosedTypesOf(typeof(DataSourceHandler<,>)).AsImplementedInterfaces();
builder.RegisterGeneric(typeof(DataSourceHandler<,>))
.As(typeof(IRequestHandler<,>));
builder.RegisterAssemblyTypes(typeof(DataSourceHandler<,>).GetTypeInfo().Assembly)
.AsClosedTypesOf(typeof(IRequestHandler<,>));
mais il ne fonctionne pas.
Que dois-je faire?
Voir l'exemple sur la façon d'enregistrer le mediatR avec autofac: https://github.com/jbogard/MediatR/blob/master/samples/MediatR.Examples.Autofac/Program.cs – 12seconds
Cela ne marche pas non plus. Je m'inscris dans Startup.cs: services.AddMediatR(); –