Compartilhar via


/moduleassemblyname (Opção do compilador de C#)

Especifica um assembly cujo não público digitar um .netmodule pode acessar.

/moduleassemblyname:assembly_name

Arguments

  • assembly_name
    O nome do assembly cujo não utilitário no .netmodule pode acessar.

Comentários

/moduleassemblyname deve ser usado ao criar um .netmodule, e quando as seguintes condições forem verdadeiras:

  • O acesso das necessidades de .netmodule como não utilitário em um assembly existente.

  • Você souber o nome do assembly no qual o .netmodule será criado.

  • O assembly existente concedeu acesso do assembly de amigo ao assembly no qual o .netmodule será criado.

Para obter mais informações sobre como criar um .netmodule, consulte /target:module (opções do compilador C#).

Para obter mais informações sobre os assemblies de amigo, consulte Assemblies amigáveis (C# e Visual Basic).

Essa opção não está disponível dentro do ambiente de desenvolvimento; está disponível apenas durante a criação de linha de comando.

Essa opção do compilador não estiver disponível no Visual Studio e não pode ser modificada programaticamente.

Exemplo

Este exemplo cria um assembly com um tipo particular, e que concede acesso do assembly de amigo a um assembly chamado 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 exemplo cria um .netmodule que acessa um utilitário não tenha o assembly moduleassemblyname_1.dll. Sabendo que este .netmodule será construído em um assembly chamado csman_an_assembly, é possível especificar /moduleassemblyname, permitindo que o .netmodule acessa o utilitário não em um assembly que concedesse acesso do assembly de amigo 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 exemplo de código cria o assembly csman_an_assembly, a referência ao assembly e o .netmodule anteriormente 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();
    }
}
  

Consulte também

Tarefas

Como modificar as propriedades de projeto e as definições de configuração

Outros recursos

Opções do compilador de C#