最新国产好看的视频,伊人天堂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í)性能直線(xiàn)下降,甚至不如序列化快。

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)論

纳雍县| 昌黎县| 奉贤区| 沁源县| 高阳县| 军事| 西青区| 南昌县| 五莲县| 义马市| 安陆市| 扎赉特旗| 崇仁县| 苏尼特左旗| 土默特左旗| 三门县| 奉贤区| 新竹县| 邮箱| 贡山| 平远县| 临朐县| 睢宁县| 彝良县| 洛阳市| 宝坻区| 耒阳市| 苏尼特左旗| 额尔古纳市| 南木林县| 綦江县| 榆树市| 隆化县| 绥宁县| 洛南县| 博野县| 鄂州市| 澎湖县| 大冶市| 绥阳县| 迁安市|