Automappingchildinjectingdata如何实现?
创始人
2024-09-23 17:00:52
0

在AutoMapper中实现Automapping child injecting data可以通过创建一个自定义解析器来实现。该解析器将允许我们在映射期间注入子级依赖项。

以下是示例代码:

首先,我们需要定义一个接口,以确保我们可以解析任何子级依赖项:

public interface IChildResolver { T Resolve(); }

然后,我们可以创建一个自定义解析器来实现该接口:

public class ChildResolver : IChildResolver { private readonly IContainer _container;

public ChildResolver(IContainer container)
{
    _container = container;
}

public T Resolve()
{
    return _container.Resolve();
}

}

现在,我们可以使用我们的解析器来注入子级依赖项。在AutoMapper的配置文件中,我们可以创建一个自定义解析器来执行此操作:

Mapper.Initialize(cfg => { cfg.CreateMap() .ForMember(p => p.ChildOne, opt => opt.MapFrom(dto => cfg.ResolveChild(dto.ChildOne))) .ForMember(p => p.ChildTwo, opt => opt.MapFrom(dto => cfg.ResolveChild(dto.ChildTwo))); });

cfg.ResolveChild()是我们自己的扩展方法:

public static class MappingExtensions { public static T ResolveChild(this IConfigurationProvider cfg, int id) { var resolver = cfg.GetService(); return resolver.Resolve(new {id}); } }

现在,我们就可以注入子级依赖项了。对于每个ParentDto,AutoMapper将使用我们的自定义解析器来解析ChildOne和ChildTwo。

使用此解决方案,我们可以轻松地注入子级依赖项,而无需显式处理它们。

相关内容

热门资讯

必备攻略!微乐家乡麻将自建房辅... 必备攻略!微乐家乡麻将自建房辅助app,微乐家乡麻将自建房辅助app(开挂自建房)技巧1、必备攻略!...
查到实测辅助!微信卡五星辅助器... 查到实测辅助!微信卡五星辅助器,微乐家乡麻将自建房辅助app(开挂自建房)教程1、超多福利:超高返利...
传递经验!微乐自建房辅助工具挂... 传递经验!微乐自建房辅助工具挂,微乐小程序免费黑科技(开挂自建房)技巧1、操作简单,无需微乐自建房辅...
一分钟教你!微信卡五星辅助器,... 一分钟教你!微信卡五星辅助器,微乐家乡麻将自建房辅助app(开挂自建房)插件1、这是跨平台的微乐家乡...
传递经验!微乐小程序自建房辅助... 传递经验!微乐小程序自建房辅助工具插件,微乐自建房脚本免费入口(开挂自建房)脚本传递经验!微乐小程序...
玩家实测!微乐自建房辅助工具挂... 玩家实测!微乐自建房辅助工具挂,微乐自建房脚本免费入口(开挂自建房)工具1、操作简单,无需微乐自建房...
推荐一款!微信微乐自建房辅助工... 推荐一款!微信微乐自建房辅助工具,微乐小程序免费黑科技(开挂自建房)攻略1、许多玩家不知道微信微乐自...
今日公布!微乐自建房辅助工具免... 今日公布!微乐自建房辅助工具免费app,微乐自建房脚本免费入口(开挂自建房)工具;1、任何微乐自建房...
必看攻略!微乐自建房辅助工具挂... 必看攻略!微乐自建房辅助工具挂,微乐自建房脚本免费入口(开挂自建房)脚本亲,关键说明,微乐自建房辅助...
科普常识!微乐微信自建房辅助工... 科普常识!微乐微信自建房辅助工具插件,微乐家乡麻将自建房辅助app(开挂自建房)教程1、完成微乐微信...