项目中常常有要进行实体转换的时候,几个字段的实体手写一下也很快,没有什么问题。但偶到大实体,有几个字段的那代码量也就不一样了。这时想提升开发效率的人或想减少工作量的人就会想办法解决这个问题了。比如我。哈哈。
一般我的做法是把这个方法装到一个类库里去。以后要用直接添加引用就好了。这样一次开发到处用。是不是很方便呀。
现将我的类库源码分享出来。看完的朋友请 点赞,评论,收藏。谢谢
类库名称:ExtendMethodsAutoMapper
要安装的包:
AutoMapper
Microsoft.AspNetCore.Http.Abstractions
Microsoft.Extensions.DependencyInjection
AutoMapper.Extensions.Microsoft.DependencyInjection
图:
源码
using AutoMapper;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using System.Collections;
namespace ExtendMethodsAutoMapper
{
/// <summary>
/// AutoMapper 扩展方法
/// </summary>
public static class AutoMapperExtendes
{
private static IServiceProvider ServiceProvider;
/// <summary>
/// 使用AutoMapper转换 扩展方法
/// </summary>
/// <param name="applicationBuilder"></param>
public static void UseStateAutoMapper(this IApplicationBuilder applicationBuilder)
{
ServiceProvider = applicationBuilder.ApplicationServices;
}
/// <summary>
/// 使用AutoMapper转换 扩展方法
/// </summary>
/// <param name="applicationBuilder"></param>
public static void UseStateAutoMapper(this IServiceProvider serviceProvider)
{
ServiceProvider = serviceProvider;
}
/// <summary>
/// 转换为目的类型 静态方法
/// </summary>
/// <typeparam name="TDestination">目的类型</typeparam>
/// <param name="source">源类型</param>
/// <returns>目的类型</returns>
public static TDestination Map<TDestination>(object source)
{
var mapper = ServiceProvider.GetRequiredService<IMapper>();
return mapper.Map<TDestination>(source);
}
/// <summary>
/// 转换 静态方法
/// </summary>
/// <typeparam name="TSource">源类型</typeparam>
/// <typeparam name="TDestination">目的类型</typeparam>
/// <param name="source">源类型</param>
/// <returns>目的类型</returns>