Partager via


/moduleassemblyname (Options du compilateur C#)

Spécifie un assembly dont les types non publics .netmodule.

/moduleassemblyname:assembly_name

Arguments

  • assembly_name
    Nom de l'assembly dont les types non publics .netmodule.

Notes

/moduleassemblyname doit être utilisé lors de la génération de . netmodule et où les conditions suivantes sont remplies :

  • . netmodule doit accéder aux types non publics d'un assembly existant.

  • Vous connaissez le nom de l'assembly dans lequel le . le netmodule sera construit.

  • L'assembly existant a accordé à l'assembly friend accès à l'assembly dans lequel le . le netmodule sera construit.

Pour plus d'informations sur la génération de . netmodule, consultez /target:module (Options du compilateur C#).

Pour plus d'informations sur les assemblys friend, consultez Assemblys friend (C# et Visual Basic).

Cette option n'est pas accessible à partir de l'environnement de développement Visual Studio. Elle est disponible uniquement lors de la compilation à partir de la ligne de commande.

Cette option du compilateur n'est pas disponible dans Visual Studio et ne peut pas être modifiée par programme.

Exemple

Cet exemple génère un assembly avec un type privé, et cela donne l'accès d'assembly friend à un assembly appelé 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"); 
    }
}

Cet exemple génère un . netmodule qui accède à un type non public dans l'assembly moduleassemblyname_1.dll. En sachant que ce . Le netmodule sera intégré à un assembly appelé csman_an_assembly, nous pouvons spécifier /moduleassemblyname, en autorisant le . netmodule pour accéder aux types non publics dans un assembly qui a accordé l'accès d'assembly friend à 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();
    }
}

Cet exemple de code génère le csman_an_assembly d'assembly, en référençant l'assembly généré précédemment et . .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();
    }
}
  

Voir aussi

Autres ressources

Options du compilateur C#

Propriétés de projet (Visual Studio)