反映 (C#)

反映提供物件 (描述元件、模組和類型的類型 Type) 。 您可以使用反映來動態建立類型的執行個體、將類型繫結至現有的物件,或從現有的物件取得類型,並叫用其方法或存取其欄位及屬性。 如果您在程式碼中使用屬性,則反映可讓您存取它們。 如需詳細資訊,請參閱屬性

以下是使用 方法的簡單反映範例,此範例 GetType() 是由基類中所有型 Object 別繼承,以取得變數的類型:

注意

請確定您在.cs檔案頂端新增 using System;using System.Reflection;

// Using GetType to obtain type information:
int i = 42;
Type type = i.GetType();
Console.WriteLine(type);

輸出為: System.Int32

下列範例使用反映以取得所載入組件的完整名稱。

// Using Reflection to get information of an Assembly:
Assembly info = typeof(int).Assembly;
Console.WriteLine(info);

輸出為: System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e

注意

C# 關鍵字和 protectedinternal 在中繼語言 (IL) 中沒有意義,而且不會在反映 API 中使用。 IL 中的對應詞彙是「系列」和「組件」。 若要使用反映來識別 internal 方法,請使用 IsAssembly 屬性。 若要識別 protected internal 方法,請使用 IsFamilyOrAssembly

反映概觀

反映在下列情況下十分有用:

其他資訊:

另請參閱