/moduleassemblyname (C#-Compileroption)

Gibt eine Assembly an, auf deren nicht öffentliche Typen ein .NET-Modul zugreifen kann.

Syntax

/moduleassemblyname:assembly_name  

Argumente

assembly_name
Der Name einer Assembly, auf deren nicht öffentliche Typen die NETMODULE-Datei zugreifen kann

Hinweise

/moduleassemblyname sollte beim Erstellen einer NETMODULE-Datei, und wenn die folgenden Bedingungen erfüllt sind, verwendet werden:

  • Die NETMODULE-Datei benötigt Zugriff auf nicht öffentliche Typen in einer vorhandenen Assembly.

  • Sie kennen den Namen der Assembly, in die die NETMODULE-Datei integriert wird.

  • Die vorhandene Assembly hat der Assembly, in die die NETMODULE-Datei integriert wird, Friend-Assembly-Zugriff erteilt.

Weitere Informationen zum Erstellen einer NETMODULE-Datei finden Sie unter /target:module (C#-Compileroptionen).

Weitere Informationen finden Sie unter Friend-Assemblys.

Diese Option steht nicht in der Entwicklungsumgebung zur Verfügung. Sie ist nur verfügbar, wenn Sie über die Befehlszeile kompilieren.

Diese Compileroption steht in Visual Studio nicht zur Verfügung und kann auch nicht programmgesteuert angepasst werden.

Beispiel

In diesem Beispiel wird eine Assembly mit einem privaten Typ erstellt, und die Friend-Assembly-erhält Zugriff auf eine Assembly namens „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");   
    }  
}  

Beispiel

In diesem Beispiel wird eine NETMODULE-Datei erstellt, das auf einen nicht öffentlichen Typ in der Assembly „moduleassemblyname_1.dll“ zugreift. Da wir wissen, dass die NETMODULE-Datei in eine Assembly namens „csman_an_assembly“ integriert wird, können wir /moduleassemblyname angeben. Dadurch wird der NETMODULE-Datei ermöglicht, auf nicht öffentliche Typen in einer Assembly zuzugreifen, die Friend-Assembly-Zugriff auf „csman_an_assembly“ gewährt hat.

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

Beispiel

In diesem Codebeispiel wird die Assembly „csman_an_assembly“ erstellt, die auf die zuvor erstellte Assembly und eine NETMODULE-Datei verweisen.

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

An_Internal_Class.Test aufgerufen

Siehe auch

C#-Compileroptionen
Verwalten von Projekt- und Projektmappeneigenschaften