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