/moduleassemblyname (Opción del compilador de C#)
Especifica un ensamblado a cuyos tipos no públicos puede obtener acceso un módulo de .NET.
/moduleassemblyname:assembly_name
Argumentos
- assembly_name
El nombre del ensamblado a cuyos tipos no públicos puede tener acceso .puede obtener acceso un módulo de .NET.
Comentarios
Se debería utilizar /moduleassemblyname al compilar un .netmodule cuando se den las condiciones siguientes:
.netmodule necesita tener acceso a los tipos no públicos de un ensamblado existente.
Sabe el nombre del ensamblado en el que .se compilará netmodule.
El ensamblado existente ha concedido acceso de ensamblado de confianza al ensamblado en el que .se compilará netmodule.
Para obtener más información sobre cómo compilarnetmodule, 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 no público del ensamblado moduleassemblyname_1.dll.Sabiendo que estonetmodule se integrará en un ensamblado denominado csman_an_assembly, se puede especificar /moduleassemblyname, lo que permite que .netmodule tenga acceso a los tipos no públicos de un ensamblado que ha concedido acceso de 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 compilado previamente y a .netmodule.
// 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