亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

.net的reflection (1) 

2019-11-18 20:56:05
字體:
來源:轉載
供稿:網友
在我的文章《C#基于接口的編程》中,我談論了使用抽象的接口作為編程范例的各種優點。分離接口和執行過程,現在肯定不是新的思想,實際上它是com編程的核心。也許基于接口的在顯著的特征是多態性和即時檢查(RTTI).RTTI允許客戶端程序在運行時訪問對象。例如,如果一個對象執行IAthlete接口,一個客戶端程序能夠查找然后綁定這個接口用于調用和定位另一個接口。
查詢接口是強大的,是com+的基礎。同時,它對能夠在一個對象上執行接口導向又是極端有用的和明確必要的,這是.net一個特別重要的概念。在介紹這個概念之前,讓我們再回顧一些信息關于在.net中功能性和分布的基礎元素--集合。
在COM(+),組件展開的邏輯和物理單元是一個.dll文件。在.net平臺中,展開的基礎單元是集合。與COM(+)組件不同的是一個.net或許是有多個文件組成,盡管它被看作是一個單一的何不可分割的功能和執行單元。一個集合文件也是自描述的,它包含被稱之為中間語言的管制代碼和附加的元數據,這個元數據給想綁定到這些代碼的客戶提供豐富的信息。.net的每個集合是著名的清單數據結構。清單包含下列信息:
1、姓名和版本信息
2、其它集合的參考信息
3、安全邊界的信息。
4、集合中所有類型的信息

毫無疑問,集合清單類似于COM(+)的類型庫。清單有在類型庫中不存在的優點。這個超過了這一課的范圍,我們將在這篇文章的第二部分進行講述。被利用.net集合的客戶端程序將要使用清單。因為每個集合包含元數據的許多信息,客戶程序在運行時能夠得到集合的內容。這個過程就叫做reflection.Reflection不僅能夠查詢基礎類,而且運行時能動態調用方法,甚至于輸出能夠直接執行的IL代碼。在你的代碼中有兩種方法來使用reflection,Reflection API 和 System.Reflection 名字空間。System.reflection是極端負責的,它包含將近40個類。在文章的其他部分,我將介紹reflection的基礎,如何用它區查詢集合類,方法,以及運行時調用方法的類型。為了示范在.net中的reflection名字空間,我將用下面的"reflection"類來說明:

// 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;
}
}
}
}

正如你所看到的那樣,這個類包含一個構造器,一個例子方法,一個例子存取方法(得到和設置)。在System.Reflaction 名字空間核心是一個名為type的類。這個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);

}
}
}



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧洲av一区二区| 国产成人一区二区| 久久亚洲电影天堂| 欧美日韩ab片| 欧美疯狂做受xxxx高潮| 韩国日本不卡在线| 欧美在线视频一区二区| 在线播放精品一区二区三区| 日韩美女激情视频| 国产精品久久久久久久午夜| 亚洲欧美日韩天堂| 久久91精品国产| 色婷婷**av毛片一区| 亚洲精品日韩丝袜精品| 成人h片在线播放免费网站| 韩国精品久久久999| 91九色视频在线| 777777777亚洲妇女| 国产一区欧美二区三区| 亚洲美女性视频| 精品高清一区二区三区| 亚洲乱码一区av黑人高潮| 久久这里只有精品视频首页| 国产精品情侣自拍| 亚洲天堂久久av| 国产精品成人va在线观看| 国产精品欧美亚洲777777| 欧美黑人视频一区| 国产欧美一区二区三区视频| 亚洲影院高清在线| 欧美色视频日本版| 国产大片精品免费永久看nba| 欧美午夜激情小视频| 青青草一区二区| 国产精品视频资源| 欧美性理论片在线观看片免费| 久久97精品久久久久久久不卡| 国产一区二区精品丝袜| 亚洲欧美日韩久久久久久| 亚洲人成电影网| 亚洲国产日韩欧美综合久久| 欧美最猛黑人xxxx黑人猛叫黄| 色偷偷av一区二区三区乱| 欧美电影在线观看完整版| 国产精品久久久久久av福利| 亚洲综合最新在线| 国产精品最新在线观看| 亚洲专区国产精品| 久久国产精品久久久久久久久久| 成人免费淫片视频软件| 国内精品视频一区| 色狠狠av一区二区三区香蕉蜜桃| 亚洲国产欧美日韩精品| 国产欧美精品在线播放| 欧美一级免费视频| 精品日本高清在线播放| 亚洲国产另类久久精品| 国产盗摄xxxx视频xxx69| 欧美情侣性视频| 欧美成人精品在线视频| 欧美精品免费看| 国语自产偷拍精品视频偷| 亚洲福利视频免费观看| 欧美一级淫片videoshd| 中国日韩欧美久久久久久久久| 68精品久久久久久欧美| 久久精品国产亚洲7777| 欧洲成人在线观看| 亚洲天堂2020| 欧美黑人又粗大| 久久av.com| 欧美主播福利视频| 91精品视频在线| 亚洲国产成人精品女人久久久| 亚洲国产精品美女| 欧美国产日韩一区二区在线观看| 欧美日韩国产丝袜美女| 有码中文亚洲精品| 国产日韩欧美影视| 久久免费在线观看| 久久精品国产成人精品| 欧美激情综合色综合啪啪五月| 精品视频在线播放色网色视频| 川上优av一区二区线观看| 91超碰caoporn97人人| 欧美精品激情视频| 欧美黄色片在线观看| 97国产精品人人爽人人做| 色一情一乱一区二区| 在线观看日韩av| 国产精品视频成人| 久久久成人精品| 欧美成人激情在线| 91在线中文字幕| 日韩欧美国产中文字幕| 国产精彩精品视频| 亚洲欧美变态国产另类| 国产区亚洲区欧美区| 热re99久久精品国产66热| 欧美一区深夜视频| 亚洲成人精品久久| 久久久999国产精品| 中文字幕精品久久久久| 亚洲欧美中文字幕在线一区| 亚洲经典中文字幕| 精品久久久久人成| 精品欧美aⅴ在线网站| 欧美日韩亚洲国产一区| 欧美小视频在线| 操日韩av在线电影| 日韩视频亚洲视频| 亚洲国产成人在线播放| 中文字幕在线看视频国产欧美在线看完整| 亚洲男人的天堂网站| 中文国产亚洲喷潮| 欧美成人精品一区| 精品久久香蕉国产线看观看亚洲| 欧美成人午夜激情在线| 国产啪精品视频| 国产成人精品电影久久久| 国产精品国产三级国产aⅴ浪潮| 97免费中文视频在线观看| 欧美美最猛性xxxxxx| 亚洲色图在线观看| 国产精品自产拍在线观| 欧美乱妇高清无乱码| 久久男人av资源网站| 日韩资源在线观看| 97在线日本国产| 国产在线高清精品| 97视频在线观看亚洲| 国产mv久久久| 日韩成人在线免费观看| 亚洲色图25p| 国产精品视频色| 国产精品美女999| 庆余年2免费日韩剧观看大牛| 亚洲天天在线日亚洲洲精| 国产精品v日韩精品| 俺去亚洲欧洲欧美日韩| 91美女福利视频高清| 国产精品日韩在线一区| 欧洲成人在线视频| 国产精品中文字幕久久久| 日本国产精品视频| 日韩av片永久免费网站| 精品久久久久久亚洲精品| 亚洲精品乱码久久久久久按摩观| 亚洲色图25p| 性欧美办公室18xxxxhd| 欧美国产第一页| 日韩精品免费电影| 欧美成人网在线| 91高潮在线观看| 亚洲国产精品va在线观看黑人| 2018中文字幕一区二区三区| 一区二区在线视频播放| 欧美黑人狂野猛交老妇| 精品香蕉一区二区三区| 欧美日韩福利在线观看| 国模精品视频一区二区| 4438全国亚洲精品在线观看视频| 国产精品视频导航| 欧美猛交ⅹxxx乱大交视频|