Sdílet prostřednictvím


/moduleassemblyname (Možnosti C# kompilátoru)

Určuje sestavení k jehož neveřejným typům může . netmodule přistupovat.

/moduleassemblyname:assembly_name

Argumenty

  • assembly_name
    Název sestavení k jehož neveřejným typům může . netmodule přistupovat.

Poznámky

Možnost /moduleassemblyname by měla být použita v případě vytváření . netmodule a pokud jsou splněny následující podmínky:

  • Operátor . netmodule potřebuje přistupovat k neveřejným typům v existujícím sestavení.

  • Znáte název sestavení, v kterém bude . netmodule vytvořen.

  • Existující sestavení udělilo spřátelený přístup sestavení, v kterém bude . netmodule vytvořen.

Další informace o vytváření . netmodule, naleznete v tématu /target:module (Možnosti C# kompilátoru).

Další informace o spřátelených sestaveních naleznete v tématu Sestavení přítele (C# a Visual Basic).

Tato možnost není k dispozici ve vývojovém prostředí; je k dispozici pouze při kompilaci z příkazového řádku.

Tato možnost kompilátoru není dostupná v aplikaci Visual Studio a nemůže být změněna v programu.

Příklad

Tato ukázka vytvoří sestavení se soukromých typem, které poskytuje spřátelený přístup sestavení s názvem 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"); 
    }
}

Tato ukázka vytvoří . netmodule, který přistupuje k neveřejnému typu v sestavení moduleassemblyname_1.dll. Jelikož víme, že tento . netmodule bude vytvořen v sestavení nazvaném csman_an_assembly, můžeme určit /moduleassemblyname, což . netmodule umožní přístup k neveřejným typům v sestavení, které udělilo spřátelený přístup sestavení 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();
    }
}

Tato ukázka kódu vytvoří sestavení csman_an_assembly, které odkazuje na dříve vytvořené sestavení 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();
    }
}
  

Viz také

Další zdroje

Možnosti C# kompilátoru

Vlastnosti projektu (Visual Studio)