Поделиться через


/moduleassemblyname (параметры компилятора C#)

Указывает сборку, к неоткрытым типам которойможет получить доступ .netmodule.

/moduleassemblyname:assembly_name

Аргументы

  • assembly_name
    Имя сборки, к не открытым типам которой .может получить доступ .netmodule.

Заметки

/moduleassemblyname должен использоваться при построении .netmodule, и выполняются следующие условия:

  • .Для netmodule требуется доступ к не открытым типам в существующей сборке.

  • Известно имя сборки, в которую будет построен .netmodule будет построен.

  • Существующей сборкой предоставлен доступ к дружественной сборке, в которую .netmodule будет построен.

Дополнительные сведения о построении .netmodule см. в статье /target:module (параметры компилятора C#).

Дополнительные сведения о дружественных сборках см. в разделе Дружественные сборки (C# и Visual Basic).

Этот параметр недоступен из среды разработки; он доступен только при компиляции из командной строки.

Этот параметр компилятора недоступен в среде разработки Visual Studio и не может быть изменен программным способом.

Пример

Следующий пример выполняет построение сборки с закрытым типом и предоставляем дружественной сборке доступ к сборке с именем 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"); 
    }
}

В этом образце строится ..netmodule, который обращается к неоткрытому типу в сборке moduleassemblyname_1.dll.Узнав, что это .netmodule будет встроен в сборку с именем csman_an_assembly, можно указать /moduleassemblyname, разрешая.netmodule для доступа к неоткрытым типам в сборке, которая предоставила дружественной сборке доступ к 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();
    }
}

Следующий код выполняет построение сборки csman_an_assembly, ссылаясь на ранее построенную сборку и .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();
    }
}
  

См. также

Задачи

Практическое руководство. Изменение свойств проекта и параметров конфигурации

Другие ресурсы

Параметры компилятора C#