C# 实现对象映射Mapster
下面是简单例子
1引用Mapster.dll包
2.初始化,设置映射规则
3.下面有两个实体 ModelA 、ModelB
class ModelA{ public string UserId{get;set;} public string Remark{get;set;} }
class ModelB{ public string User_id{get;set;} public string Remark_msg{get;set;} public string Lab_id{get;set;} }
4.初始化 (推荐: 将所有的映射规则写一起,当项目执行时一起进行初始化操作 ,之后直接使用,避免每次映射都需要进行初始化)
public static void InitMapster() { // modelA 映射到 modelB TypeAdapterConfig<ModelA, ModelB> .NewConfig() .AddDestinationTransform((string x) => !string.IsNullOrWhiteSpace(x) ? x : " ") // 空值替换 .Map(dest => dest.Lab_id, src => MapContext.Current.Parameters["labId"]) // 获取运行时的labId的值 .Map(dest => dest.User_id, src => src.UserId) // 将UserId的值映射给User_id .Map(dest => dest.Remark_msg, src => src.Remark); // 将Remark的值映射给Remark_msg TypeAdapterConfig<ModelC, ModelD> ...... }
5.使用映射
// 调用Mapster 将 List<ModelA> modelAs 映射到 List<ModelB> modelBs public void test() { List<modelA> modelAs = ...; // 获取modelA对象集合 int labId = 1; // 获取 labId的值 // 进行映射 var modelBs = modelAs.BuildAdapter() .AddParameters("labId", labId) // 设置值 .AdaptToType<List<ModelB>>(); // 将某一实体映射成List<ModelB> }