最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 對(duì)象映射的高性能方案

 更新時(shí)間:2020年12月14日 15:37:11   作者:烏龜會(huì)哲_Program  
這篇文章主要介紹了C# 對(duì)象映射的高性能方案,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,有需要的朋友可以借鑒參考下

1.之前在使用AutoMapper 框架感覺(jué)用著比較不夠靈活,而且主要通過(guò)表達(dá)式樹(shù)Api 實(shí)現(xiàn)對(duì)象映射 ,寫(xiě)著比較討厭,當(dāng)出現(xiàn)復(fù)雜類(lèi)型和嵌套類(lèi)型時(shí)性能直線下降,甚至不如序列化快。

2.針對(duì)AutoMapper 處理復(fù)雜類(lèi)型和嵌套類(lèi)型時(shí)性能非常差的情況,自己實(shí)現(xiàn)一個(gè)簡(jiǎn)化版對(duì)象映射的高性能方案

public class Article
 {
  public int Id { get; set; }
  public string CategoryId { get; set; }
  public string Title { get; set; }
  public string Pic { get; set; }
  public string Host { get; set; }
  public string PicHost => Pic.FormatHostUrl(Host);
  public string Content { get; set; }
  public bool TopStatus { get; set; }
  public DateTime PublishDate { get; set; }
  public string LastUpdateUser { get; set; }
  public DateTime LastUpdateDate { get; set; }
  public bool IsTeacher { get; set; }
  public bool IsParent { get; set; }
  public bool IsOrg { get; set; }
  public bool IsLeaner { get; set; }
  public string ToUserStr
  {
   get
   {
    List<string> strArr = new List<string>();
    if (IsLeaner)
    {
     strArr.Add("學(xué)員");
    }
    if (IsOrg)
    {
     strArr.Add("機(jī)構(gòu)");
    }
    if (IsParent)
    {
     strArr.Add("家長(zhǎng)");
    }
    if (IsTeacher)
    {
     strArr.Add("老師");
    }
    return string.Join(",", strArr);
   }
  }
  public int OrgId { get; set; }
  public object OrgInfo { get; set; }
  public string IsPlatformStr => OrgId == 0 ? "平臺(tái)" : "機(jī)構(gòu)";
 }

現(xiàn)在我們來(lái)使用兩行代碼來(lái)搞定對(duì)象映射問(wèn)題

為了實(shí)現(xiàn)操作更方便,多對(duì)象映射

實(shí)現(xiàn)對(duì)象映射功能的代碼如下:

public static T CopyObjValue<T>(this T toobj, Object fromobj) where T : class
  {
   if (fromobj != null && toobj != null)
   {
    var otherobjPorps = fromobj.GetType().GetProperties();
    foreach (var formp in otherobjPorps)
    {
     var top = toobj.GetType().GetProperty(formp.Name);
     if (top != null)
     {
      try
      {
       top.SetValue(toobj, formp.GetValue(fromobj));
      }
      catch (Exception e)
      {
       Console.WriteLine(e.Message);
      }
     }
    }
   }
   return toobj;
  }

到此這篇關(guān)于C# 對(duì)象映射的高性能方案的文章就介紹到這了,更多相關(guān)高性能對(duì)象映射內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

镇宁| 黑龙江省| 宣化县| 沂源县| 年辖:市辖区| 扶风县| 弋阳县| 清苑县| 潼关县| 金门县| 淳化县| 抚宁县| 鄂托克前旗| 八宿县| 阿勒泰市| 明溪县| 龙游县| 桦南县| 河南省| 炉霍县| 东莞市| 定远县| 澳门| 湖口县| 海安县| 海林市| 连城县| 合作市| 荥经县| 土默特右旗| 洛隆县| 页游| 三亚市| 天津市| 高邮市| 崇左市| 南皮县| 喜德县| 印江| 鸡西市| 宜城市|