Udostępnij za pośrednictwem


Instrukcje: odwołanie do zestawu o silnej nazwie

Proces odwoływania się do typów lub zasobów w zestawie o silnej nazwie jest zwykle przezroczysty. Odwołanie można utworzyć w czasie kompilacji (wczesne powiązanie) lub w czasie wykonywania.

Odwołanie do czasu kompilacji występuje, gdy wskazujesz kompilatorowi, że zestaw do skompilowania jawnie odwołuje się do innego zestawu. W przypadku używania odwołań do czasu kompilacji kompilator automatycznie pobiera klucz publiczny docelowego zestawu o silnych nazwach i umieszcza go w odwołaniu do zestawu kompilowanego.

Uwaga

Zestaw o silnej nazwie może używać tylko typów z innych zestawów o silnych nazwach. W przeciwnym razie bezpieczeństwo zestawu o silnych nazwach zostanie naruszone.

Tworzenie odwołania w czasie kompilacji do zestawu o silnej nazwie

W wierszu polecenia wpisz następujące polecenie:

<polecenie> kompilatora/odwołanie:<nazwa zestawu>

W tym poleceniu kompilator jest poleceniem kompilatora dla używanego języka, a nazwa zestawu to nazwa zestawu o silnej nazwie, do którego się odwołujesz. Można również użyć innych opcji kompilatora, takich jak /t:library opcji tworzenia zestawu biblioteki.

Poniższy przykład tworzy zestaw o nazwie myAssembly.dll, który odwołuje się do zestawu o silnej nazwie o nazwie myLibAssembly.dll z modułu kodu o nazwie myAssembly.cs.

csc /t:library myAssembly.cs /reference:myLibAssembly.dll  

Tworzenie odwołania w czasie wykonywania do zestawu o silnej nazwie

W przypadku utworzenia odwołania w czasie wykonywania do zestawu o silnej nazwie, na przykład przy użyciu Assembly.Load metody lub Assembly.GetType , należy użyć nazwy wyświetlanej przywoływałego zestawu o silnej nazwie. Składnia nazwy wyświetlanej jest następująca:

<nazwa> zestawu,numer> wersji,kultura,token><<< klucza publicznego>

Na przykład:

myDll, Version=1.1.0.0, Culture=en, PublicKeyToken=03689116d3a4ae33

W tym przykładzie PublicKeyToken jest to forma szesnastkowa tokenu klucza publicznego. Jeśli nie ma wartości kultury, użyj wartości Culture=neutral.

W poniższym przykładzie kodu pokazano, jak używać tych informacji z Assembly.Load metodą .

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")

Format szesnastkowy klucza publicznego i tokenu klucza publicznego dla określonego zestawu można wydrukować przy użyciu następującego polecenia silnej nazwy (Sn.exe):

sn -Tp < assembly >

Jeśli masz plik klucza publicznego, możesz zamiast tego użyć następującego polecenia (zwróć uwagę na różnicę w przypadku opcji wiersza polecenia):

sn -tp < plik klucza publicznego >

Zobacz też