一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

LINQ TO Reflection

  引言

  我們平時開發(fā)中不可避免,或者說,經(jīng)常性的使用反射。但是卻沒有一個合適的類庫幫助我們更好的利用反射。從早期的FastInvoker,到老趙的 fastreflectionlib ,無一不是在強調(diào)Fast。這是因為反射的性能損耗比較厲害,所以大家都集中精力解決性能的問題,但是在易用性方面卻鮮有改進(jìn)。今天我為大家?guī)硪粋€即兼顧性能又具有良好的使用體驗的反射類庫.

  .Metadata()

  此類庫以LINQ TO Object為基礎(chǔ),可以通過調(diào)用.Metadata()方法獲取對應(yīng)Type的完整Metadata信息。此信息會被進(jìn)行緩存,并且使用fastreflectionlib的核心Lambda代碼,利用DynamicMethod代替直接的反射執(zhí)行。

        public static Metadata Metadata(this object instance)
{
return MetadataCache.Create(instance);
}

     先定義一個MockObject

        class MockAttribute : Attribute
{
public MockAttribute(string name)
{
this.Name = name;
}
public string Name
{
get;set;
}
}

class MockObject
{
public string Country = "China";

[Mock("this is the name")]
public string Name
{
get;set;
}
public string Blog
{
get;set;
}
[Mock("this is the location")]
public string Location
{
get;set;
}
public string SayHello(string name)
{
return "Hi," + name;
}
}
}

   1.如何獲取一個屬性,并進(jìn)行取值、賦值?

        using Sparrow.Reflection;
[TestMethod]
public void set_property_value()
{
var obj = new MockObject { Name = "dayi", Blog = "http://walkingboy.cnblogs.com", Location = "XiaMen" };
var property = obj.Metadata().Properties.Where(i => i.Name == "Location").FirstOrDefault();
var changedLocation = "Xiamen,China";
//get value //var value = property.GetValue(obj); property.SetValue(obj, changedLocation); Assert.AreEqual(changedLocation, obj.Location); }

   2.如果獲取一個字段的值?

        using Sparrow.Reflection;
[TestMethod]
public void get_field_value()
{
var obj = new MockObject();

var field = obj.Metadata().Fields.Where(i => i.Name == "Country").FirstOrDefault();

Assert.AreEqual("China", field.GetValue(obj));
}

NET技術(shù)LINQ TO Reflection,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产大片黄在线看免费 | 国产成人香蕉在线视频网站 | 国产精品免费_区二区三区观看 | 欧洲精品视频在线观看 | 欧美14p| 国产成人在线小视频 | 91精品视频在线免费观看 | 97麻豆精品国产自产在线观看 | 7色影院 | 另类天堂网 | 中文字幕精品一区 | 二区在线播放 | 91短视频免费在线观看 | 久久精品综合 | 激情五月激情综合网 | 精品性久久 | 好吊妞视频988在线播放 | 六月丁香深爱六月综合激情 | 国产精品资源手机在线播放 | 69堂国产成人精品视频不卡 | 91视频综合网 | 91麻豆精品国产高清在线 | 欧美精品v国产精品v日韩精品 | 伊人网综合在线视频 | 五月在线观看 | 国产视频二区在线观看 | 一区二区三区四区日韩 | 成人观看天堂在线影片 | 狠狠色噜噜狠狠狠狠97不卡 | 久久青草免费97线频观 | 国产视频在| 在线视频一区二区三区四区 | 亚洲第一页国产 | 中文字幕一二三区乱码老 | 精品伊人久久大线蕉色首页 | 综合第一页 | 女人被爽到呻吟娇喘的视频动态图 | 国产 欧美 日产久久 | 伊人网综合在线视频 | 97超级碰在线精品视频 | 日韩综合nv一区二区在线观看 |