/moduleassemblyname (Opción del compilador de C#)
Especifica un ensamblado a cuyos tipos no públicos puede tener acceso un .netmodule.
/moduleassemblyname:assembly_name
Argumentos
- assembly_name
El nombre del ensamblado cuyos tipos privados el .netmodule tiene acceso.
Comentarios
/moduleassemblyname debe utilizar al compilar un .netmodule, y donde se cumplen las condiciones siguientes:
El .netmodule necesita acceso a los tipos privados de un ensamblado existente.
Conoce el nombre del ensamblado donde el .netmodule se compilará.
El ensamblado existente ha concedido acceso al ensamblado de confianza al ensamblado donde el .netmodule se compilará.
Para obtener más información sobre cómo compilar un .netmodule, vea /target:module (Opciones del compilador de C#).
Para obtener más información sobre los ensamblados de confianza, vea Ensamblados de confianza (C# y Visual Basic).
Esta opción no está disponible en el entorno de desarrollo; sólo está disponible al compilar desde la línea de comandos.
Esta opción del compilador no está disponible en Visual Studio y no se puede cambiar mediante programación.
Ejemplo
Este ejemplo compila un ensamblado con un tipo privado que concede acceso de ensamblado de confianza a un ensamblado llamado csman_an_assembly.
// moduleassemblyname_1.cs
// compile with: /target:library
using System;
using System.Runtime.CompilerServices;
[assembly:InternalsVisibleTo ("csman_an_assembly")]
class An_Internal_Class
{
public void Test()
{
Console.WriteLine("An_Internal_Class.Test called");
}
}
Este ejemplo compila un .netmodule que tiene acceso a un tipo privado del ensamblado moduleassemblyname_1.dll. Sabiendo que este .netmodule se compilará en un ensamblado denominado csman_an_assembly, se puede especificar /moduleassemblyname, permitiendo que el .netmodule tener acceso a los tipos privados de un ensamblado que ha concedido el acceso del ensamblado de confianza a csman_an_assembly.
// moduleassemblyname_2.cs
// compile with: /moduleassemblyname:csman_an_assembly /target:module /reference:moduleassemblyname_1.dll
class B {
public void Test() {
An_Internal_Class x = new An_Internal_Class();
x.Test();
}
}
Este ejemplo de código compila el ensamblado csman_an_assembly, haciendo referencia al ensamblado y el .netmodule anterior- compilados.
// csman_an_assembly.cs
// compile with: /addmodule:moduleassemblyname_2.netmodule /reference:moduleassemblyname_1.dll
class A {
public static void Main() {
B bb = new B();
bb.Test();
}
}
Vea también
Tareas
Cómo: Modificar las propiedades y los valores de configuración del proyecto