Udostępnij za pośrednictwem


/ moduleassemblyname (C# kompilator opcja)

Określa zestaw, których typy niepublicznych.netmodule można uzyskać dostęp.

/moduleassemblyname:assembly_name

Argumenty

  • assembly_name
    Nazwa zestawu, których typy niepublicznych.netmodule można uzyskać dostęp.

Uwagi

/moduleassemblynamepowinny być użyte podczas budowania.netmodule, i gdy są spełnione następujące warunki:

  • .netmodule musi mieć dostęp do typów-publiczny w istniejący zestaw.

  • Znasz nazwę zestawu, do którego.netmodule zostanie zbudowana.

  • Istniejący zestaw udzieliło do zestawu, do którego dostęp do zestawu friend.netmodule zostanie zbudowana.

Aby uzyskać więcej informacji na temat tworzenia.netmodule, zobacz /target:module (C# kompilator opcje).

Aby uzyskać więcej informacji na zestawy przyjaciel, zobacz Zespoły Friend (C# i Visual Basic).

Ta opcja nie jest dostępna od środowiska programistycznego; jest on dostępny tylko wtedy, podczas kompilacji z wiersza polecenia.

Ta opcja kompilatora jest niedostępna w programie Visual Studio i nie można zmienić programowo.

Przykład

Próbka ta buduje zestaw o prywatnych typu, i która zapewnia 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"); 
    }
}

Buduje tej próbki.netmodule uzyskującego dostęp typu-publiczny w moduleassemblyname_1.dll zgromadzenia.Wiadomo, że.netmodule będą wbudowane w zestawie o nazwie csman_an_assembly, możemy podać /moduleassemblyname, dzięki czemu.netmodule-publiczny typów w zestawie, do którego udzielił dostępu zestawu friend do csman_an_assembly dostępu do.

// 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 Zgromadzenia, odwoływanie się do zgromadzenia wcześniej zbudowany 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

Jak: modyfikowanie właściwości projektu i ustawień konfiguracji

Inne zasoby

Opcje kompilatora C#