/moduleassemblyname (C# Derleyici Seçeneği)
Ortak olmayan türleri şu şekilde olan bir derleme belirtir. netmodule erişebilir.
/moduleassemblyname:assembly_name
- assembly_name
Ortak olmayan türleri olan derlemenin adı. netmodule erişebilir.
/moduleassemblyname, oluştururken kullanılmalıdır. netmodule, ve aşağıdaki koşullar mevcut olduğunda:
. netmodule mevcut bir derlemede ortak olmayan türlere erişmelidir.
Derlemenin adını bilirsiniz. netmodule inşa edilecek.
Varolan derleme, ... derlemeye arkadaş derleme erişimi sağlar. netmodule inşa edilecek.
Oluşturma hakkında daha fazla bilgi için. netmodule, bkz. /target:module (C# Derleyici Seçenekleri).
Arkadaş derlemeleri hakkında daha fazla bilgi için bkz. Arkadaş derlemeler (C# ve Visual Basic).
Bu seçenek geliştirme ortamına bulunmaz, sadece komut satırından derlerken kullanılabilir.
Bu derleyici seçeneği Visual Studio'da yoktur ve program aracılığıyla değiştirilemez.
Bu örnek özel türlü bir derleme oluşturur ve bu da arkadaş derlemeye csman_an_assembly adındaki bir derlemeye erişim sağlar.
// 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");
}
}
Bu örnek şunu oluşturur: moduleassemblyname_1.dll derlemesinde ortak olmayan türlere erişen netmodule. Bunu bilerek . netmodule, csman_an_assembly adı verilen bir derlemeye yerleştirilir, /moduleassemblyname derlemesini belirtebilir, öğesine izin verebiliriz. csman_an_assembly derlemesine kolay derleme erişimi vermiş bir derlemedeki ortak olmayan türlere erişecek netmodule.
// 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();
}
}
Şuna ve önceden yapılandırılan derlemelere başvurulduğunda, bu kod örneği csman_an_assembly derlemesini yapılandırır. 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();
}
}
Nasıl yapılır: Proje Özellikleri ve yapılandırma ayarlarını değiştirme