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