Dela via


Gör så här: Referera till en stark namngiven sammansättning

Processen för att referera till typer eller resurser i en stark namngiven sammansättning är vanligtvis transparent. Du kan göra referensen antingen vid kompileringstid (tidig bindning) eller vid körning.

En kompileringstidsreferens inträffar när du anger för kompilatorn att sammansättningen som ska kompileras uttryckligen refererar till en annan sammansättning. När du använder kompileringstidsreferenser hämtar kompilatorn automatiskt den offentliga nyckeln för den riktade starka namngivna sammansättningen och placerar den i sammansättningsreferensen för den sammansättning som kompileras.

Kommentar

En stark namngiven sammansättning kan bara använda typer från andra starka namngivna sammansättningar. Annars skulle säkerheten för den starkt namngivna sammansättningen äventyras.

Gör en kompileringstidsreferens till en stark namngiven sammansättning

Skriv följande kommando i kommandotolken:

<compiler command>/reference:<assembly name>

I det här kommandot är kompilatorkommandot kompilatorkommandot för det språk du använder, och sammansättningsnamnet är namnet på den starka namngivna sammansättning som refereras till. Du kan också använda andra kompilatoralternativ, till exempel alternativet /t:library för att skapa en bibliotekssammansättning.

I följande exempel skapas en sammansättning med namnet myAssembly.dll som refererar till en stark namngiven sammansättning med namnet myLibAssembly.dll från en kodmodul med namnet myAssembly.cs.

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

Gör en körningsreferens till en stark namngiven sammansättning

När du gör en körningsreferens till en stark namngiven Assembly.Load sammansättning, till exempel med hjälp av metoden eller Assembly.GetType , måste du använda visningsnamnet för den refererade starka namngivna sammansättningen. Syntaxen för ett visningsnamn är följande:

<sammansättningsnamn,versionsnummer,kultur,offentlig>><<>< nyckeltoken>

Till exempel:

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

I det här exemplet PublicKeyToken är den hexadecimala formen av den offentliga nyckeltoken. Om det inte finns något kulturvärde använder du Culture=neutral.

I följande kodexempel visas hur du använder den här informationen med Assembly.Load metoden.

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

Du kan skriva ut hexadecimalt format för den offentliga nyckeln och den offentliga nyckeltoken för en specifik sammansättning med hjälp av följande kommando för starkt namn (Sn.exe):

sn -Tp-sammansättning <>

Om du har en offentlig nyckelfil kan du använda följande kommando i stället (observera skillnaden i fallet med kommandoradsalternativet):

sn -tp <offentlig nyckelfil>

Se även