六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

.net的reflection (1) 

[摘要]在我的文章《C#基于接口的編程》中,我談?wù)摿耸褂贸橄蟮慕涌谧鳛榫幊谭独母鞣N優(yōu)點(diǎn)。分離接口和執(zhí)行過程,現(xiàn)在肯定不是新的思想,實(shí)際上它是com編程的核心。也許基于接口的在顯著的特征是多態(tài)性和即時(shí)檢查(RTTI).RTTI允許客戶端程序在運(yùn)行時(shí)訪問對(duì)象。例如,如果一個(gè)對(duì)象執(zhí)行IAthlete接口,一個(gè)...
在我的文章《C#基于接口的編程》中,我談?wù)摿耸褂贸橄蟮慕涌谧鳛榫幊谭独母鞣N優(yōu)點(diǎn)。分離接口和執(zhí)行過程,現(xiàn)在肯定不是新的思想,實(shí)際上它是com編程的核心。也許基于接口的在顯著的特征是多態(tài)性和即時(shí)檢查(RTTI).RTTI允許客戶端程序在運(yùn)行時(shí)訪問對(duì)象。例如,如果一個(gè)對(duì)象執(zhí)行IAthlete接口,一個(gè)客戶端程序能夠查找然后綁定這個(gè)接口用于調(diào)用和定位另一個(gè)接口。
查詢接口是強(qiáng)大的,是com+的基礎(chǔ)。同時(shí),它對(duì)能夠在一個(gè)對(duì)象上執(zhí)行接口導(dǎo)向又是極端有用的和明確必要的,這是.net一個(gè)特別重要的概念。在介紹這個(gè)概念之前,讓我們?cè)倩仡櫼恍┬畔㈥P(guān)于在.net中功能性和分布的基礎(chǔ)元素--集合。
在COM(+),組件展開的邏輯和物理單元是一個(gè).dll文件。在.net平臺(tái)中,展開的基礎(chǔ)單元是集合。與COM(+)組件不同的是一個(gè).net或許是有多個(gè)文件組成,盡管它被看作是一個(gè)單一的何不可分割的功能和執(zhí)行單元。一個(gè)集合文件也是自描述的,它包含被稱之為中間語(yǔ)言的管制代碼和附加的元數(shù)據(jù),這個(gè)元數(shù)據(jù)給想綁定到這些代碼的客戶提供豐富的信息。.net的每個(gè)集合是著名的清單數(shù)據(jù)結(jié)構(gòu)。清單包含下列信息:
1、姓名和版本信息
2、其它集合的參考信息
3、安全邊界的信息。
4、集合中所有類型的信息

毫無(wú)疑問,集合清單類似于COM(+)的類型庫(kù)。清單有在類型庫(kù)中不存在的優(yōu)點(diǎn)。這個(gè)超過了這一課的范圍,我們將在這篇文章的第二部分進(jìn)行講述。被利用.net集合的客戶端程序?qū)⒁褂们鍐巍R驗(yàn)槊總(gè)集合包含元數(shù)據(jù)的許多信息,客戶程序在運(yùn)行時(shí)能夠得到集合的內(nèi)容。這個(gè)過程就叫做reflection.Reflection不僅能夠查詢基礎(chǔ)類,而且運(yùn)行時(shí)能動(dòng)態(tài)調(diào)用方法,甚至于輸出能夠直接執(zhí)行的IL代碼。在你的代碼中有兩種方法來(lái)使用reflection,Reflection API 和 System.Reflection 名字空間。System.reflection是極端負(fù)責(zé)的,它包含將近40個(gè)類。在文章的其他部分,我將介紹reflection的基礎(chǔ),如何用它區(qū)查詢集合類,方法,以及運(yùn)行時(shí)調(diào)用方法的類型。為了示范在.net中的reflection名字空間,我將用下面的"reflection"類來(lái)說明:

// Reflect.cs
namespace CSharpReflectionSamples
{
using System;

/// <summary>
/// The reflect class will be used to demonstrate the basics of
/// .NET reflection. This class contains private member vars,
/// a constructor, a sample method, and sample accessor methods.
/// </summary>
public class Reflect
{
// private member variables
private int intTest;
private string strTest;

// constructor
public Reflect(int intData)
{
// constructor logic
intTest = intData;
}

// basic method
public int AMethod(int intData)
{
return intData*intData;
}

public string S
{
get
{
// return member var
return strTest;
}
set
{
// set member var
S = value;
}
}
}
}

正如你所看到的那樣,這個(gè)類包含一個(gè)構(gòu)造器,一個(gè)例子方法,一個(gè)例子存取方法(得到和設(shè)置)。在System.Reflaction 名字空間核心是一個(gè)名為type的類。這個(gè)type類型包含許多方法和到許多類信息的一種登錄入口。Type類參考可以靠typeof或者GetType的方法得到。下表列舉了一些類類型的方法,包括示例GetTypeof 和typeof方法的代碼段。
Name
Description

GetFields()
Returns an array of FieldInfo objects describing the fields in the class.

GetMethods()
Returns an array of MethodInfo objects describing the methods of the class.

GetConstructors()
Returns all the constructors for an object.

GetInterfaces()
Gets all interfacs implemented by the type.

GetMembers()
Gets all the members (fields, methods, events, etc.) of the current type.

InvokeMember()
Invokes a member of the current type.

BaseType
Gets a Type object for the type's immediate base type.

IsAbstract
Returns true if the type is abstract.

IsClass
Returns true if the type is a class.

IsEnum
Returns true if the type is an enum.

IsNestedPublic
Returns true if a type is nested within another and is public.

Namespace
Retrieves the namespace of the type.



namespace CSharpReflectionSamples
{
using System;
using System.Reflection;

/// <summary>
/// Summary description for Client.
/// </summary>
public class Client
{
public static void Main()
{
// the typeof operator and the GetType method
// both return a 'Type' object.
Type type1 = typeof(Reflect);
Reflect objTest = new Reflect(0);
Type type2 = objTest.GetType();

Console.WriteLine("Type of objTest is {0}", type2);

}
}
}





標(biāo)簽:.net的reflection (1)  

相關(guān)文章

主站蜘蛛池模板: 在线观看午夜视频 | 亚洲福利在线观看 | 又大又硬又爽免费视频 | 人人做天天爱夜夜爽中字 | 中文字幕一精品亚洲无线一区 | 日韩黄色在线视频 | 欧美性猛交ⅹxxx乱大交免费 | 最近免费韩国高清在线观看 | 欧美特黄a级高清免费看片 欧美特黄a级高清免费大片 | 中文字幕亚洲综合久久男男 | 日本黄 色 成 年 人免费观看 | 日日操狠狠干 | 亚洲国产一区在线观看 | 亚洲成a人v欧美综合天 | 清清草免费视频 | 日产精品卡二卡三卡四卡乱码视频 | 伊人精品在线观看 | 日本韩国高清 | 日本亚洲中午字幕乱码 | 伊人a.v在线| 亚洲成人第一页 | 亚洲偷| 亚洲福利一区二区精品秒拍 | 日日麻批视频 | 青青青爽在线视频免费观看 | 午夜国产高清精品一区免费 | 青青青国产精品手机在线观看 | 自拍一区在线观看 | 亚洲乱码一二三四区乱码 | 亚洲日韩中文字幕一区 | 日本a级三级三级三级久久 日本a级片在线播放 | 中文字幕人成乱在线视频 | 四虎a456tncom | 性欧美xxxx性| 天天插天天操天天射 | 日本护士后进式猛烈动态图片 | 四虎影院大全 | 午夜手机视频 | 日本一区二区三区四区无限 | 午夜激情影院 | 全部免费特黄特色大片视频 |