/moduleassemblyname (opção de compilador C#)
Especifica um assembly cujos tipos não-públicos um.netmodule pode acessar.
/moduleassemblyname:assembly_name
Argumentos
- assembly_name
O nome do assembly cujos tipos não-públicos o.netmodule pode acessar.
Comentários
/moduleassemblynamedeve ser usado ao criar um.netmodule, e onde as seguintes condições forem verdadeiras:
A.netmodule precisa acessar tipos de não-públicos de um conjunto existente.
Você sabe o nome do assembly no qual o.netmodule serão criados.
O conjunto existente tenha concedido acesso de assembly friend ao assembly no qual o.netmodule serão criados.
Para obter mais informações sobre a criação de um.netmodule, consulte /target:Module (Opções do compilador de C#).
Para obter mais informações sobre friend assemblies, consulte Friend Assemblies (C# e Visual Basic).
Esta opção não está disponível no ambiente de desenvolvimento; só está disponível durante a compilação da linha de comando.
Esta opção de compilador está disponível no Visual Studio e não pode ser alterado programaticamente.
Exemplo
Este exemplo cria um assembly com um tipo particular e que fornece acesso de assembly friend 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 tipo não-públicos no moduleassemblyname_1.dll assembly.Sabendo que esta.netmodule será compilado em um assembly chamado csman_an_assembly, podemos especificar /moduleassemblyname, permitindo o.netmodule acessar tipos não-públicos em um assembly que tenha concedido acesso de assembly friend para 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, fazendo referência ao assembly compilado anteriormente e.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();
}
}
Consulte também
Tarefas
Como: modificar propriedades do projeto e as definições de configuração