• [非专业翻译] Mapster 依赖注入


    [非专业翻译] Mapster - 依赖注入

    系列介绍

    [非专业翻译] 是对没有中文文档进行翻译的系列博客,文章由机翻和译者自己理解构成,和原文相比有所有不同,但意思基本一致。

    因个人能力有限,如有谬误之处还请指正,多多包涵。

    正文

    本文将说明 Mapster 如何配合依赖注入使用

    依赖注入支持

    这个插件允许将映射配置添加到依赖注入容器中

    PM> Install-Package Mapster.DependencyInjection
    

    如何使用

    在启动时,注册 TypeAdapterConfigServiceMapper

    public void ConfigureServices(IServiceCollection services)
    {
        ...
        var config = new TypeAdapterConfig();
        // Or
        // var config = TypeAdapterConfig.GlobalSettings;
        services.AddSingleton(config);
        services.AddScoped<IMapper, ServiceMapper>();
        ...
    }
    

    注意! ServiceMapper 可以根据实际的需求来决定在依赖注入容器的生命周期,但 TypeAdapterConfig 必须是 Singleton

    映射配置

    可以通过 MapContext.Current.GetService<TService>() 从依赖注入容器中获取服务。

    例如从 MapContext.Current.GetService 获取 INameFormatter 服务:

    config.NewConfig<Poco, Dto>()
        .Map(dest => dest.Name, src => MapContext.Current.GetService<INameFormatter>().Format(src.Name));
    
    映射

    如果配置了依赖注入,那么需要注入 IMapper 实例用于对象映射:

    public class FooService {
        private readonly IMapper _mapper;
    
        public FooService(IMapper mapper) {
            _mapper = mapper;
        }
    
        public void DoSomething(Poco poco) {
            var dto = _mapper.Map<Dto>(poco);
            ...
        }
    }
    
  • 相关阅读:
    一张图帮你分清scroll、offset、client
    js两种显示日期的方法
    理解js的全局变量和局部变量
    中文输入+英文标点+快速编辑Markdown文本+Sublime+Snippet
    Markdown 使用方法
    get和post的区别
    js对象属性方法大总结(收集)
    bfc (收集的)
    客户端网页编程知识总结
    html学习总结
  • 原文地址:https://www.cnblogs.com/staneee/p/14913817.html
Copyright © 2020-2023  润新知