Хотелось бы узнать, есть ли способ глобально настроить Mapster при использовании Dependency Injection?
Параметры конфигурации, по-видимому, предназначены для использования stati c, а также только для одноэлементного шаблона.
Конфигурация Mapster
Внедрение зависимостей Mapster
Я создал метод расширения.
// Extension method
public static IServiceCollection AddMapster(this IServiceCollection services, Action<TypeAdapterConfig> options = null)
{
var config = new TypeAdapterConfig();
config.Scan(Assembly.GetAssembly(typeof(Startup)));
options?.Invoke(config);
services.AddSingleton(config);
services.AddScoped<IMapper, ServiceMapper>();
return services;
}
// Called in Startup.ConfigureServices(IServiceCollection services)
services.AddMapster(options =>
{
options.Default.IgnoreNonMapped(true); // Does not work.
TypeAdapterConfig.GlobalSettings.Default.IgnoreNonMapped(true); // Does not work.
});
Я полагаю, они не работают, потому что ServiceMapper
создает свой собственный экземпляр без использования чего-либо, что я настроил.