Útmutató: Hivatkozás egy erős nevű szerelvényre

Az erős nevű szerelvényben lévő típusok vagy erőforrások hivatkozási folyamata általában transzparens. A referenciát készítheti fordításkor (korai kötés) vagy futásidőben.

A fordítási idő referenciája akkor fordul elő, ha azt jelzi a fordítónak, hogy a fordítandó szerelvény explicit módon egy másik szerelvényre hivatkozik. Fordítási időre való hivatkozás használatakor a fordító automatikusan lekéri a megcélzott erős nevű szerelvény nyilvános kulcsát, és elhelyezi a lefordított szerelvény szerelvény-referenciájában.

Feljegyzés

Az erős névvel ellátott szerelvények csak más, erős névvel ellátott szerelvények típusait használhatják. Ellenkező esetben az erős nevű szerelvény biztonsága sérülne.

Fordítási idő hivatkozásának készítése egy erős nevű szerelvényre

Írja be a parancssorba a következő parancsot:

< compiler parancs>/utalás:<szerelvény neve>

Ebben a parancsban a fordító parancs a használt nyelv fordítóparancsa, a szerelvény neve pedig a hivatkozott erős nevű szerelvény neve. Más fordítóbeállításokat is használhat, például a /t:library lehetőséget egy erőforrástár-szerelvény létrehozásához.

Az alábbi példa egy myAssembly.dll nevű szerelvényt hoz létre, amely egy myLibAssembly.dll nevű, erős nevű szerelvényre hivatkozik egy myAssembly.cs nevű kódmodulból.

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

Futtatókörnyezeti hivatkozás létrehozása egy erős nevű összeállításra

Ha futásidejű hivatkozást készít egy erős névvel ellátott szerelvényre, például a Assembly.Load vagy Assembly.GetType metódus használatával, a hivatkozott erős névvel ellátott szerelvény megjelenítendő nevét kell használnia. A megjelenített név szintaxisa a következő:

< szerelvény neve,verziószám,kultúra,nyilvános<

Példa:

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

Ebben a példában PublicKeyToken a nyilvános kulcs jogkivonatának hexadecimális formája. Ha nincs kulturális érték, használja a következőt Culture=neutral: .

Az alábbi példakód bemutatja, hogyan használhatja ezeket az információkat a Assembly.Load metódussal.

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

A nyilvános kulcs és a nyilvános kulcs jogkivonatának hexadecimális formátumát az alábbi Strong Name (Sn.exe) paranccsal nyomtathatja ki egy adott szerelvényhez:

sn -Tp <szerelvény>

Ha nyilvános kulcsú fájllal rendelkezik, használhatja helyette a következő parancsot (a parancssori beállítás esetében vegye figyelembe a különbséget):

sn -tp <nyilvános kulcsfájl>

Lásd még