因为我是将需要加载的程序集信息放到配置文件中的,所以这里我们只需要将包含 Profile 规则的程序集添加到对应的配置项下面就可以了,此时如果包含多个程序集,则需要使用 `|` 进行分隔。
{
"Assembly": {
"Mapper": "aspnetcore-automapper-tutorial"
}
}
当我们将所有的实体映射规则注入到 IServiceCollection 中,就可以在代码中使用这些实体映射规则。和其它通过依赖注入的接口使用方式相同,我们只需要在使用到的地方注入 IMapper 接口,然后通过 Map 方法就可以完成实体间的映射,使用的代码如下。
public class PostAppService : IPostAppService
{
#region Initialize
/// <summary>
///
/// </summary>
private readonly IPostDomain _post;
/// <summary>
///
/// </summary>
private readonly IMapper _mapper;
/// <summary>
/// ctor
/// </summary>
/// <param name="post"></param>
/// <param name="mapper"></param>
public PostAppService(IPostDomain post, IMapper mapper)
{
_post = post ?? throw new ArgumentNullException(nameof(post));
_mapper = mapper ?? throw new ArgumentNullException(nameof(mapper));
}
#endregion Initialize
/// <summary>
/// 获取所有的文章信息
/// </summary>
/// <returns></returns>
public IList<PostViewModel> GetPostLists()
{
var datas = _post.GetPostLists();
return _mapper.Map<IList<PostModel>, IList<PostViewModel>>(datas);
}
}
本篇文章主要是演示下如何在 ASP.NET Core 项目中去使用 AutoMapper 来实现实体间的映射,因为之前只是在 .NET Fx 项目中有使用过这个组件,并没有在 .NET Core 项目中使用,所以这次趁着国庆节假期就来尝试如何在 .NET Core 项目中使用,整个组件使用起来其实是很简单的,但是使用后却可以给我们在实际的项目开发中省很多的事,所以就把自己的使用方法分享出来,如果对你有些许的帮助的话,不胜荣幸~~~