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>
}

浙公网安备 33010602011771号