/moduleassemblyname (opcja kompilatora C#)
Określa zestaw których typy niepublicznych .netmodule można uzyskać dostęp.
/moduleassemblyname:assembly_name
Argumenty
- assembly_name
Nazwa zestawu, którego niepublicznych typów .netmodule, można uzyskać dostęp.
Uwagi
/moduleassemblynamepowinny być używane podczas konstruowania .netmodule, a w przypadku, gdy są spełnione następujące warunki:
.netmodule musi mieć dostęp do typów niepublicznych w istniejący zestaw.
Znasz nazwę zespołu, do którego zostanie zbudowany .netmodule.
Istniejący zestaw udzielił dostępu zestawu przyjaciela do zestawu, do którego zostanie zbudowany .netmodule.
Aby uzyskać więcej informacji na temat budowania .netmodule, zobacz /target:module (opcje kompilatora C#).
Aby uzyskać więcej informacji na temat zestawów przyjaciela, zobacz Przyjazne zestawy (C# i Visual Basic).
Ta opcja nie jest dostępna w środowisku programistycznym; dostępna tylko podczas kompilacji z wiersza polecenia.
Ta opcja kompilatora jest niedostępny w programie Visual Studio i nie można zmienić programowo.
Przykład
Ten przykład buduje zestaw o prywatnych typu, a to daje dostęp do zestawu friend do zestawu o nazwie 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");
}
}
W przykładzie tworzy .netmodule, uzyskuje dostęp do typu niepublicznych w moduleassemblyname_1.dll zestawu.Wiedząc, że ten .netmodule będą wbudowane w zestawie o nazwie csman_an_assembly, możemy określić /moduleassemblyname, pozwalając .netmodule dostępu niepublicznych typów w zestawie, do którego udzielił przyjaciel zestawu dostępu do 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();
}
}
Ten przykładowy kod tworzy csman_an_assembly zestawu, odwoływanie się do zgromadzenia wcześniejsza kompilacja i .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();
}
}
Zobacz też
Zadania
Porady: modyfikowanie właściwości projektu i ustawień konfiguracji