首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有依赖注入的Mapster全局配置

带有依赖注入的Mapster全局配置
EN

Stack Overflow用户
提问于 2020-04-12 14:21:38
回答 2查看 5.6K关注 0票数 4

我想知道是否有一种在使用依赖注入的同时全局配置Mapster的方法?

配置选项似乎是用于静态使用的,也是用于单例模式的。

Mapster配置

Mapster依赖注入

我已经创建了一个扩展方法。

代码语言:javascript
运行
复制
// 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没有使用我配置的任何东西就创建了自己的实例。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-14 00:02:03

你可以从

代码语言:javascript
运行
复制
var config = new TypeAdapterConfig();

代码语言:javascript
运行
复制
var config = TypeAdapterConfig.GlobalSettings;
票数 3
EN

Stack Overflow用户

发布于 2021-04-14 14:47:09

我在Blazor应用程序中实现了Mapster,我很难找到关于如何扫描程序集以进行映射注册的文档。

我的应用程序中有一个类,它实现IRegister接口并定义映射

代码语言:javascript
运行
复制
public class MappingRegistration : IRegister
{
    void IRegister.Register(TypeAdapterConfig config)
    {
        config.NewConfig<ModelA, ModelB>();
    }
}

ConfigureServices of Startup.cs中,我有这个

代码语言:javascript
运行
复制
var typeAdapterConfig = TypeAdapterConfig.GlobalSettings;
// scans the assembly and gets the IRegister, adding the registration to the TypeAdapterConfig
typeAdapterConfig.Scan(Assembly.GetExecutingAssembly());
// register the mapper as Singleton service for my application
var mapperConfig = new Mapper(typeAdapterConfig);
services.AddSingleton<IMapper>(mapperConfig);

我希望这能节省某人的时间。如果有人知道更好的方法,请告诉我。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61172885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档