2011-08-12 15 views

Respuesta

14

para obtener la clave pública de un ensamblado con nombre, utilice la herramienta sn:

sn -Tp assembly.dll 

esto le mostrará la clave pública que debe ingresar el atributo InternalsVisibleTo. Si abre un símbolo del sistema de Visual Studio, la herramienta sn.exe ya estará en la ruta.

Sin embargo,, me pregunto qué estás tratando de lograr realmente. Si tiene un ensamblado compilado que no escribió, agregar el atributo InternalsVisibleTo a su código le permitirá acceder a las partes internas de su código, pero no se habría compilado sin tener acceso de amigo. Si está intentando acceder a las partes internas del otro conjunto, entonces el atributo InternalsVisibleTonecesitará agregar al otro conjunto - algo que no puede hacer sin recompilarlo ...

+0

El ensamblaje que estoy tratando de usar amigo está usando reflejo contra mi código, y se rompe cuando el código de reflexión descubre que se está ejecutando contra una clase interna a la que no debería acceder. Estos errores están en tiempo de ejecución, no de compilación. –

+0

Buena pregunta sin embargo. –

2

Se tiene que especificar el nombre completo y el símbolo de clave pública en el expediente AssemblyInfo.cs de reunión que "necesita un amigo":

[assembly: InternalsVisibleTo("FullAssemblyName, PublicKey=....",)] 

Si tiene Reflector.NET o ildasm en la mano se puede utilizar para ver esta información

Cuestiones relacionadas