如何:參考強式名稱的組件
參考強式名稱組件中類型或資源的程序通常十分簡單。 您可以在編譯時間 (早期繫結) 或執行階段進行參考。
當您對編譯器指出明確參考另一個組件來編譯組件時,就會發生編譯時間參考。 當您使用編譯時間參考時,編譯器會自動取得目標強式名稱組件的公開金鑰,並將它放在所編譯組件的組件參考中。
注意
強式名稱的組件只可使用來自其他強式名稱組件的類型。 否則,強式名稱組件的安全性將會受到危害。
建立強式名稱組件的編譯時間參考
在命令提示字元中,輸入下列命令:
<編譯器命令>/reference:<組件名稱>
在這個命令中,「編譯器命令」是您所使用語言的編譯器命令,而「組件名稱」是所參考的強式名稱組件的名稱。 您也可以使用其他編譯器選項,例如 /t:library 選項來建立程式庫組件。
下列範例會建立稱為 myAssembly.dll 的組件,而此組件從稱為 myAssembly.cs 的程式碼模組參考稱為 myLibAssembly.dll 的強式名稱組件。
csc /t:library myAssembly.cs /reference:myLibAssembly.dll
建立強式名稱組件的執行階段參考
當您建立強式名稱組件的執行階段參考時 (例如,使用 Assembly.Load 或 Assembly.GetType 方法),必須使用所參考強式名稱組件的顯示名稱。 顯示名稱的語法如下:
<組件名稱>,<版本號碼>,<文化特性>,<公開金鑰權杖>
例如:
myDll, Version=1.1.0.0, Culture=en, PublicKeyToken=03689116d3a4ae33
在此範例中,PublicKeyToken
是公開金鑰權杖的十六進位格式。 如果沒有文化特性值,請使用 Culture=neutral
。
下列程式碼範例示範如何搭配使用這項資訊與 Assembly.Load 方法。
Assembly^ myDll =
Assembly::Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");
Assembly myDll =
Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");
Dim myDll As Assembly = _
Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1")
您可以使用下列強式名稱 (Sn.exe) 命令,列印特定組件之公開金鑰和公開金鑰權杖的十六進位格式:
sn -Tp < assembly >
如果您有公開金鑰檔案,則可以改用下列命令 (請注意命令列選項上的大小寫差異):
sn -tp < 公開金鑰檔案 >