Delen via


Procedure: Verwijzen naar een sterk benoemde assembly

Het proces voor het verwijzen naar typen of resources in een sterk benoemde assembly is meestal transparant. U kunt de verwijzing maken op het moment van compileren (vroege binding) of tijdens runtime.

Er treedt een referentietijd op wanneer u aangeeft aan de compiler dat de assembly die moet worden gecompileerd expliciet verwijst naar een andere assembly. Wanneer u compileertijdverwijzing gebruikt, haalt de compiler automatisch de openbare sleutel op van de beoogde sterk benoemde assembly en plaatst deze in de assemblyverwijzing van de assembly die wordt gecompileerd.

Notitie

Een sterk benoemde assembly kan alleen typen van andere sterk benoemde assembly's gebruiken. Anders zou de beveiliging van de sterk benoemde assembly worden aangetast.

Een compilatietijdverwijzing maken naar een sterk benoemde assembly

Typ de volgende opdracht bij een opdrachtprompt:

<compileropdracht>/verwijzing:<assemblynaam>

In deze opdracht is de compileropdracht de compileropdracht voor de taal die u gebruikt, en de assemblynaam is de naam van de sterk benoemde assembly waarnaar wordt verwezen. U kunt ook andere compileropties gebruiken, zoals de optie /t:library voor het maken van een bibliotheekassembly.

In het volgende voorbeeld wordt een assembly met de naam myAssembly.dll gemaakt die verwijst naar een sterk benoemde assembly met de naam myLibAssembly.dll van een codemodule met de naam myAssembly.cs.

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

Een runtimeverwijzing maken naar een sterk benoemde assembly

Wanneer u een runtimeverwijzing maakt naar een assembly met een sterke naam, bijvoorbeeld met behulp van de Assembly.Load of Assembly.GetType methode, moet u de weergavenaam van de sterk benoemde assembly gebruiken. De syntaxis van een weergavenaam is als volgt:

<assemblynaam,versienummer,cultuur,token>><<>< met openbare sleutel>

Voorbeeld:

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

In dit voorbeeld PublicKeyToken is de hexadecimale vorm van het openbare-sleuteltoken. Als er geen cultuurwaarde is, gebruikt u Culture=neutral.

In het volgende codevoorbeeld ziet u hoe u deze informatie gebruikt met de Assembly.Load methode.

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

U kunt de hexadecimale indeling van de openbare sleutel en het openbare-sleuteltoken voor een specifieke assembly afdrukken met behulp van de volgende opdracht Sterke naam (Sn.exe ):

sn -Tp < assembly >

Als u een openbare-sleutelbestand hebt, kunt u in plaats daarvan de volgende opdracht gebruiken (let op het verschil in het geval van de opdrachtregeloptie):

sn -tp < openbare sleutelbestand >

Zie ook