Compartir a través de


/moduleassemblyname (Especificar un ensamblado de confianza para el módulo) (Opción del compilador de C# )

Actualización: noviembre 2007

Especifica un ensamblado a cuyos tipos no públicos puede tener acceso .netmodule.

/moduleassemblyname:assembly_name

Argumentos

  • assembly_name
    El nombre del ensamblado a cuyos tipos no públicos puede tener acceso .netmodule.

Comentarios

Se debe utilizar /moduleassemblyname al generar .netmodule cuando se den las condiciones siguientes:

  • .netmodule necesita tener acceso a los tipos no públicos de un ensamblado existente.

  • Se conoce el nombre del ensamblado en el que se generará .netmodule.

  • El ensamblado existente ha concedido acceso de ensamblado de confianza al ensamblado en el que se generará .netmodule.

Para obtener más información sobre cómo generar .netmodule, vea /target:module (Crear un módulo para agregarlo a un ensamblado) (Opciones del compilador de C#).

Para obtener más información sobre los ensamblados de confianza, vea Ensamblados de confianza (Guía de programación de C#).

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 genera 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 genera un módulo .netmodule que tiene acceso a un tipo no público del ensamblado moduleassemblyname_1.dll. Al saber que dicho .netmodule se generará en un ensamblado llamado csman_an_assembly, se puede especificar /moduleassemblyname, lo que permite que el módulo .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 genera el ensamblado csman_an_assembly, haciendo referencia al ensamblado y .netmodule generados previamente.

// 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();
    }
}

An_Internal_Class.Test called

Vea también

Otros recursos

Opciones del compilador de C#

Propiedades del proyecto (Visual Studio)