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

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM