久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

簡易的反射類庫NMSReflector該怎么理解

簡易的反射類庫NMSReflector該怎么理解,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

我們提供的服務(wù)有:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、瀘溪ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的瀘溪網(wǎng)站制作公司

背景簡介

         以前看過一些代碼,是簡單的讀取SqlReader然后賦值給Model,我不是不贊同這種做法,只是看到大篇幅的賦值操作真的有點(diǎn)浪費(fèi)時間和精力,尤其是一些老項(xiàng)目居多。我看到的還好,多的也就60多個字段且不用其他ORM,如果涉及到變更的話,那么對維護(hù)人員來說可能不僅僅是眼力活甚至還是....體力活。另外就是表格的操作,因?yàn)楸扇酥耙彩菍戇^類似的項(xiàng)目,列名對應(yīng)著Model屬性名,一個不差,隱隱覺得它們之間應(yīng)該聯(lián)系起來,所以想能不能盡可能簡化它的操作?可能是自己做得項(xiàng)目太少,只能想到反射這種方法,但是反射的性能大家也都了解,大量的反射賦值耗時可以慢到你眨幾下眼睛,但這對程序來說我覺得是一場災(zāi)難。因此結(jié)合反射發(fā)出的方法寫了這個庫,如果能給大家在項(xiàng)目上帶來一些便利我也就知足了。

案例1:

public class Student : INMSReflector { 

public string Name;

public string Description { get; set; }        

public static string StaticField; 

public static string StaticProperty { get; set; }    

}

引用步驟:

  1. Step1 : 引用類庫.   

  2. Step2 : using NMSReflector.  

  3. Step3 : 將你的類實(shí)現(xiàn)INMSReflector接口;(當(dāng)然了,如果你嫌麻煩,可以改一下源碼,在ModelOperator.cs中).  

  4. Step4 : 用Create方法創(chuàng)建緩存. (會掃描搜索入口程序集的所有類)  

由于類庫中對object類型做了擴(kuò)展,因此對象實(shí)例可以調(diào)用擴(kuò)展方法。

1、EmitSet(string propertyName,object value)  為對象的字段或?qū)傩再x值

2、EmitGet(string propertyName) 獲取對象某字段或者屬性值 

用法:

ModelOperator.Create();   

Student t = new Student();   

//普通字段   

t.Name = "小明";   

t.EmitSet("Name", "小明胸前的紅領(lǐng)巾更加鮮艷了!");   

Console.WriteLine(t.Name);   

Console.WriteLine(t.EmitGet("Name"));   

//普通屬性   

t.EmitSet("Description", "他愛著小剛");   

Console.WriteLine(t.Description);   

Console.WriteLine(t.EmitGet("Description"));   

//靜態(tài)字段   

t.EmitSet("StaticFiled", "是他挨著小剛");   

Console.WriteLine(Student.StaticField);   

Console.WriteLine(t.EmitGet("StaticField"));   

//靜態(tài)屬性   

t.EmitSet("StaticProperty", "剛才打錯了");   

Console.WriteLine(Student.StaticProperty);   

Console.WriteLine(t.EmitGet("StaticProperty"));  

ModelOperator.Create();   
Student t = new Student();   
//普通字段   
t.Name = "小明";   
t.EmitSet("Name", "小明胸前的紅領(lǐng)巾更加鮮艷了!");   
Console.WriteLine(t.Name);   
Console.WriteLine(t.EmitGet("Name"));   
//普通屬性   
t.EmitSet("Description", "他愛著小剛");   
Console.WriteLine(t.Description);   
Console.WriteLine(t.EmitGet("Description"));   
//靜態(tài)字段   
t.EmitSet("StaticFiled", "是他挨著小剛");   
Console.WriteLine(Student.StaticField);   
Console.WriteLine(t.EmitGet("StaticField"));   
//靜態(tài)屬性   
t.EmitSet("StaticProperty", "剛才打錯了");   
Console.WriteLine(Student.StaticProperty);   
Console.WriteLine(t.EmitGet("StaticProperty"));

結(jié)果:

簡易的反射類庫NMSReflector該怎么理解

案例2:

支持Column標(biāo)簽

public class Student : INMSReflector 

public string Name; 

[Column("Note")] 

public string Description { get; set; } 

public static string StaticField; 

public static string StaticProperty { get; set; } 

}

public class Student : INMSReflector 

{ 

	public string Name; 

	[Column("Note")] 

	public string Description { get; set; } 

	public static string StaticField; 

	public static string StaticProperty { get; set; } 

}

注意:

這里的標(biāo)簽是來自于System.ComponentModel.DataAnnotations.Schema; 

所以需要using System.ComponentModel.DataAnnotations.Schema;

用法:

無論傳標(biāo)簽設(shè)置的名字還是屬性名,都可以賦值或者獲取值。

ModelOperator.Create(); 

Student t = new Student(); 

t.EmitSet("Note", "設(shè)置標(biāo)簽"); 

Console.WriteLine(t.Description);

Console.WriteLine(t.EmitGet("Note"));

其他:

ModelOperator類提供了更多的操作函數(shù)。

與object的擴(kuò)展方法有所不同,第一個參數(shù)需要把實(shí)例傳進(jìn)去

//獲取實(shí)例t的某字段和屬性的值

object Get<T>(T t, string propertyName)

//設(shè)置實(shí)例t的某字段和屬性的值

void Set<T>(T t, string propertyName, object value)

//獲取類型T的某字段和屬性的類型

Type GetType<T>(string propertyName)

//獲取類型T的設(shè)置方法緩存

Dictionary<string, Action<object, object>> GetSetCache<T>()

//獲取類型T的獲取方法緩存

Dictionary<string, Func<object, object>> GetGetCache<T>()

//獲取類型T的屬性字段類型緩存

Dictionary<string, Type> GetTypeCache<T>()

//獲取類型T的標(biāo)簽與屬性字段緩存

Dictionary<string, string> GetMapCache<T>()

性能測試:

簡易的反射類庫NMSReflector該怎么理解

關(guān)于簡易的反射類庫NMSReflector該怎么理解問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

本文名稱:簡易的反射類庫NMSReflector該怎么理解
轉(zhuǎn)載來于:http://www.js-pz168.com/article20/gppoco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)小程序開發(fā)靜態(tài)網(wǎng)站手機(jī)網(wǎng)站建設(shè)商城網(wǎng)站網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
国产亚洲欧美另类一区二区三区| 欧美三级日韩三级| 678五月天丁香亚洲综合网| 久久免费视频一区| 亚洲免费观看高清完整版在线观看| 日韩av电影天堂| 91丨九色丨国产丨porny| 日韩一区免费观看| 制服丝袜在线91| 自拍偷拍国产亚洲| 久久午夜色播影院免费高清| 一区二区三区中文在线观看| 国产一区视频导航| 久久99精品久久久久久秒播放器 | 中文字幕一区二区三区色视频| 天堂一区二区在线| 97精品电影院| 先锋在线资源一区二区三区| 日韩欧美中文字幕一区| 亚洲午夜精品在线| eeuss鲁片一区二区三区| 亚洲精品tv久久久久久久久| 日韩欧美不卡在线观看视频| 一区二区三区四区激情| 成人网在线播放| 亚洲春色在线| 国产三区在线成人av| 免费一级片91| 精品高清视频| 日韩一卡二卡三卡国产欧美| 亚洲一区二三区| 97人人香蕉| 欧美日韩在线直播| 亚洲男人的天堂网| 成人va在线观看| 色悠悠久久综合| 国产精品久久久久天堂| 国产精品自拍在线| 香蕉久久夜色| 亚洲国产经典视频| 国产一区二区三区在线观看免费 | 不卡日韩av| 欧美精品一二三| 亚洲观看高清完整版在线观看| 99久久伊人久久99| 一本色道久久综合亚洲91| 国产精品国产三级国产aⅴ入口| 国产在线播精品第三| 欧美激情导航| 久久久久久久久岛国免费| 韩国视频一区二区| 色噜噜狠狠色综合网| 欧美国产精品一区二区三区| 国产精品99久久久久久久vr| 一区二区三区四区国产| 亚洲丝袜制服诱惑| 91在线视频网址| 欧美精品在线视频| 日韩成人精品在线观看| 久久综合精品一区| 久久精品视频网| 成人免费高清视频在线观看| 在线观看免费亚洲| 亚洲午夜激情av| 激情五月综合色婷婷一区二区| 精品国产凹凸成av人网站| 寂寞少妇一区二区三区| 亚洲一区二区三区色| 亚洲品质自拍视频网站| 成人三级在线| 26uuu色噜噜精品一区二区| 国产自产视频一区二区三区| 色综合色综合色综合| 一区二区三区四区不卡视频| av一区二区三区在线观看| 欧美v国产在线一区二区三区| 久久国产生活片100| 亚洲v国产v在线观看| 亚洲视频网在线直播| 国产91aaa| 欧美精品一区二| 国产a精品视频| 在线成人午夜影院| 六月丁香综合在线视频| 一本到高清视频免费精品| 亚洲一区二区精品视频| 欧美日韩精品久久久免费观看| 中文一区在线播放| av在线不卡一区| 久久九九国产精品| 99riav久久精品riav| 精品国产91久久久久久久妲己| 国产成人夜色高潮福利影视| 在线观看91精品国产麻豆| 久久草av在线| 欧美日韩卡一卡二| 精品一区二区三区蜜桃| 在线看不卡av| 捆绑变态av一区二区三区 | 午夜天堂影视香蕉久久| 日本一区二区三区www| 亚洲精品久久久蜜桃| 久久精品第九区免费观看 | www国产精品av| 99久久精品国产精品久久| 精品黑人一区二区三区久久| www.日韩大片| 久久久噜噜噜久噜久久综合| 91免费观看视频| 国产精品视频你懂的| 黄色99视频| 一区二区三区欧美亚洲| 西游记1978| 蜜臀av一区二区| 欧美日韩大陆在线| 国产馆精品极品| 精品国产区一区| 99国产视频| 自拍av一区二区三区| 欧洲视频一区二区三区| 午夜精品久久久久久久99水蜜桃 | 日本一区二区三区四区| 亚洲国产精品综合小说图片区| 日韩一本精品| 亚洲一区二区三区爽爽爽爽爽| 亚洲图片欧洲图片日韩av| 男女视频一区二区| 51午夜精品国产| 成人av免费观看| 欧美韩日一区二区三区| 久久久久欧美| 亚洲第四色夜色| 欧美亚洲一区二区三区四区| 国产精品一区久久久久| 精品福利av导航| 国产精品永久入口久久久| 亚洲卡通欧美制服中文| 中文字幕一区二区三区有限公司 | 日韩一区二区三区观看| 91黄在线观看| 亚洲欧美成aⅴ人在线观看| 色一情一乱一伦一区二区三区丨| 日韩国产一区二| 91精品国产综合久久久蜜臀粉嫩| 99视频有精品| 亚洲视频在线观看三级| 一卡二卡3卡四卡高清精品视频| 另类调教123区| 精品美女一区二区| 久久96国产精品久久99软件| 偷拍日韩校园综合在线| 91精品国产综合久久婷婷香蕉 | 国产精品国产三级国产专播品爱网 | 制服视频三区第一页精品| 91丨porny丨国产入口| 亚洲欧美日韩国产手机在线| 伊人久久大香线蕉精品| 国产成人免费视频| 国产精品免费久久久久| 亚洲一区二区三区免费观看| 国产精品18久久久久久久久 | 国产66精品久久久久999小说| 亚洲影视在线播放| 欧美久久久久久蜜桃| 成人片在线免费看| 日日夜夜精品视频免费| 国产亚洲第一区| 香蕉影视欧美成人| 日韩一区二区免费在线观看| 国产亚洲欧美一区二区三区| 视频在线观看一区| 欧美videos中文字幕| 免费看成人av| 久久精品免费观看| 亚洲国产精品精华液2区45| 亚洲国产欧美日韩| 成人综合在线视频| 亚洲精品中文在线影院| 欧美精品亚洲一区二区在线播放| yy111111少妇影院日韩夜片| 日韩高清在线不卡| www精品美女久久久tv| 亚洲免费视频一区| 成人福利视频网站| 亚洲一区二区三区在线看| 欧美一级理论片| 欧美中文娱乐网| 国产99久久久国产精品潘金| 亚洲精品国产第一综合99久久| 欧美私人免费视频| 加勒比在线一区二区三区观看| 久久精品久久精品| 国产精品久久久久久久久快鸭| 亚洲砖区区免费| 国产美女精品在线观看| 国产精品成人免费在线| 欧美日韩国产综合一区二区| 国产专区一区二区| 寂寞少妇一区二区三区| 日韩理论片网站|