共用方式為


反映叫用技術範例

更新:2007 年 11 月

這個範例說明如何以公用類別和方法將晚期繫結實作到任何 Managed 組件。您可以從命令列選取組件、型別、方法和參數。這個範例會試著載入組件、找出型別和方法,並以傳遞的參數叫用方法。此範例甚至會嘗試為使用非字串參數的方法呼叫執行必要的型別轉換。反映類別讓執行這項進階功能變得簡單。範例中含有一個名為 Tester.dll 的簡單 DLL 專案。此測試專案提供了一個簡單的型別和幾個方法,以試用叫用範例。

如需使用這些範例的詳細資訊,請參閱下列主題:

Download sample

若要使用命令提示字元建置範例

  1. 巡覽至範例的其中一個語言特定子目錄。

  2. 根據您選擇的程式設計語言,在命令列輸入 msbuild InvokeCS.sln 或 msbuild InvokeVB.sln。

若要使用 Visual Studio 建置範例

  1. 開啟 [Windows 檔案總管],並巡覽至此範例任一程式設計語言的子目錄。

  2. 根據您選擇的程式設計語言,按兩下 [InvokeCS.sln] 或 [InvokeVB.sln] 的圖示,在 Visual Studio 中開啟該檔案。

  3. 在 [建置] 功能表上,按一下 [建置方案]。

注意事項:

這個範例會建置一個主控台應用程式。您必須使用 [命令提示字元] 啟動,才能檢視它的輸出。

Invoke.exe 接受會指出您想叫用之項目的命令列參數。如果以不加參數的方式執行,則會顯示範例用法。請使用下列語法對型別叫用方法:

Invoke.exe [Assembly] [Type] [Method] [Parameters...]  

若要執行範例

  1. 巡覽至 Invoke.exe 和 Tester.dll 所在的目錄。

  2. 在命令列輸入 Invoke.exe [Assembly] [Type] [Method] [Parameters...]。

備註

Msbuild 工具會建置兩個檔案:Invoke.exe 和 Tester.dll。

下列範例中會以三個參數對型別 SomeType 呼叫 ShowMessage 方法,例如:

Invoke.exe Tester.dll Microsoft.Samples.SomeType ShowMessage "This is an example of a message." "Question:" 4

如需反映叫用的詳細資訊,請參閱原始程式碼檔案中的註解。

下面幾點簡短說明了此範例所使用的技術和類別:

  • 反映

    • Assembly用來載入組件,並在該組件中搜尋某個型別。

    • Type 用來取得 MemberInfo 執行個體的陣列,並在建立執行個體時,視需要參考型別。

    • MethodInfo 用來探索單一方法的相關資訊,包括參數和方法名稱。範例中比較了這個型別的資訊和命令列所提供的資訊。MethodInfo 也會用來叫用方法。

    • ParameterInfo 主要用來尋找方法參數的型別,讓範例能正確地轉換命令列引數。

    • Activator 在範例發現需要呼叫執行個體方法時,用來建立型別的執行個體。

  • 系統

    • Array 用來將一部分的陣列複製到另一個陣列。

    • Convert 用來嘗試將命令列引數 (屬於 String 型別) 轉換成傳遞給指定型別方法的適當參數型別。

請參閱

參考

Activator

Array

Assembly

AssemblyBuilderAccess

Convert

MethodAttributes

MethodInfo

ParameterInfo

System.Reflection

Type

其他資源

反映

發出動態方法和組件

動態原始程式碼的產生和編譯