Compartir a través de


Cómo: Hacer referencia a un ensamblado con nombre seguro

Actualización: noviembre 2007

El proceso para hacer referencia a los tipos o recursos de un ensamblado de nombre seguro es, por lo general, transparente. La referencia se puede hacer en tiempo de compilación o en tiempo de ejecución para permitir el enlace.

Una referencia en tiempo de compilación se produce cuando se indica al compilador que el ensamblado haga referencia de forma explícita a otro ensamblado. Cuando se usa la referencia en tiempo de compilación, el compilador obtiene automáticamente la clave pública del ensamblado de nombre seguro de destino y la ubica en la referencia al ensamblado del ensamblado que se está compilando.

Nota:

Un ensamblado con nombre seguro sólo puede utilizar tipos de otros ensamblados con nombre seguro. De lo contrario, se pondría en peligro la seguridad del ensamblado con nombre seguro.

Para hacer una referencia en tiempo de compilación a un ensamblado de nombre seguro

  • En el símbolo del sistema, escriba el siguiente comando:

    <comando del compilador> /reference:<nombre del ensamblado>

    En este comando, comando del compilador es el comando del compilador para el lenguaje utilizado y nombre del ensamblado es el nombre del ensamblado de nombre seguro al que se hace referencia. También se pueden usar otras opciones de compilador, por ejemplo la opción /t:library para crear un ensamblado de biblioteca.

En el ejemplo siguiente se crea un ensamblado denominado myAssembly.dll que hace referencia a un ensamblado de nombre seguro denominado myLibAssembly.dll desde un módulo de código denominado myAssembly.cs.

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

Para hacer una referencia en tiempo de ejecución a un ensamblado de nombre seguro

  • Cuando se hace una referencia en tiempo de ejecución a un ensamblado con nombre seguro, por ejemplo mediante los métodos Assembly.Load o Assembly.GetType, es necesario utilizar el nombre para mostrar del ensamblado con nombre seguro al que se hace referencia. La sintaxis de un nombre para mostrar es:

<nombre del ensamblado>, <número de versión>, <referencia cultural>, <símbolo de clave pública>

Por ejemplo:

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

En este ejemplo, PublicKeyToken es la forma hexadecimal del símbolo de la clave pública. Si no hay ningún valor de referencia cultural, utilice Culture=neutral.

En el ejemplo de código siguiente se muestra cómo se utiliza esta información con el método Assembly.Load.

Assembly.Load("myDll,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa32c18d4fb1")
Assembly.Load("myDll,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa32c18d4fb1");

Se puede imprimir el formato hexadecimal de la clave pública y del símbolo de la clave pública de un ensamblado concreto mediante el siguiente comando de la herramienta Nombre seguro (Sn.exe):

sn -Tp <ensamblado>

Si se tiene un archivo de clave pública, se puede utilizar el siguiente comando (advierta la diferencia entre mayúsculas y minúsculas en la opción de la línea de comandos):

sn -tp <ensamblado>

Vea también

Otros recursos

Crear y utilizar ensamblados con nombre seguro