Aracılığıyla paylaş


Arkadaş derlemeler (C# ve Visual Basic)

A Arkadaş derlemesi başka bir derlemenin erişebileceği bir derlemenin içinde arkadaş (Visual Basic) veya (C#) türleri ve üyeleri.Derleme bir arkadaş derlemesi olarak tanımlamak, artık türleri ve üyeleri için bunları sırayla genel olarak diğer derlemeler tarafından erişilecek işareti yok.Bu özellikle aşağıdaki senaryolarda kullanışlıdır:

  • Test kod çalıştırıldığında birim sınaması sırasında ayrı bir derleme olarak işaretlenen sınanmakta olan derleme üyelerine erişim ancak gerektirir. Friend (Visual Basic) veya internal (C#).

  • Ne zaman bir sýnýf kitaplýðý geliştirmektedir ve Kütüphane yapılması ayrı derlemelerde bulunan ancak olarak işaretlenen varolan derlemeler üyelerine erişim gerektiren Friend (Visual Basic) veya internal (C#).

Notlar

Kullanabileceğiniz InternalsVisibleToAttribute bir veya daha fazla arkadaş derlemeler için verilen derleme tanımlamak için öznitelik.Aşağıdaki örnek InternalsVisibleToAttribute a derleme özniteliği ve derleme belirtir AssemblyB Arkadaş derlemesi olarak.Bu derleme verir AssemblyB erişmek için tüm türleri ve Üyeler'de bir olarak işaretlenen montaja Friend (Visual Basic) veya internal (C#).

[!NOT]

Bir derlemenin derleme ne zaman (derleme AssemblyB) iç türleri ya da başka bir derleme iç üyeleri erişebilir (derleme a), çıktı dosyasının (.exe veya .dll) adını kullanarak açıkça belirtmelisiniz /out derleyici seçeneği.Bu gereklidir, çünkü derleyici dış başvurular bağlama zaman oluşturma derleme adı henüz oluşturmamıştır.Daha fazla bilgi için bkz: /out (C#) ve / out (Visual Basic).

Imports System.Runtime.CompilerServices
Imports System
<Assembly: InternalsVisibleTo("AssemblyB")> 

' Friend class.
Friend Class FriendClass
    Public Sub Test()
        Console.WriteLine("Sample Class")
    End Sub
End Class

' Public class with a Friend method.
Public Class ClassWithFriendMethod
    Friend Sub Test()
        Console.WriteLine("Sample Method")
    End Sub
End Class
using System.Runtime.CompilerServices;
using System;

[assembly: InternalsVisibleTo("AssemblyB")]

// The class is internal by default.
class FriendClass
{
    public void Test()
    {
        Console.WriteLine("Sample Class");
    }
}

// Public class that has an internal method.
public class ClassWithFriendMethod
{
    internal void Test()
    {
        Console.WriteLine("Sample Method");
    }

}

Arkadaş erişebilir, açıkça belirtmek derleme Friend (Visual Basic) veya internal (C#) türleri ve üyeleri.Derleme b derleme a ve c derleme başvuruları derleme b arkadaş ise, örneğin, c erişimi yok Friend (Visual Basic) veya internal a. türleriyle (C#)

Derleyici geçirilen arkadaş derleme adının bazı temel doğrulama gerçekleştirir InternalsVisibleToAttribute özniteliği.Derleme a bildirir b bir arkadaş derlemesi doğrulama kuralları aşağıdaki gibidir:

StrongNameIdentityPermission Sınıf türleri aşağıdaki farklılıkları ile paylaşma olanağı da sağlar:

  • StrongNameIdentityPermissionTüm derleme Arkadaş derlemesi geçerli olmakla birlikte tek bir türü için geçerlidir.

  • Birleştirme türleri yüzlerce ise a derlemesi ile paylaşmak istediğiniz b, eklemek zorunda StrongNameIdentityPermission tüm bunları.Arkadaş derlemesi kullanırsanız, arkadaş ilişkisi bir kez bildirmek gerekir.

  • Kullanırsanız, StrongNameIdentityPermission, paylaşmak istediğiniz türü genel olarak bildirilmesi gerekir.Arkadaş derlemesi kullanıyorsanız, paylaşılan türleri olarak bildirilir Friend (Visual Basic) veya internal (C#).

Bir derlemenin erişme hakkında bilgi için Friend (Visual Basic) veya internal (C#) türleri ve yöntemleri bir modül dosyası (bir dosya.netmodule uzantılı bir dosya) varsa, bkz: /moduleassemblyname (Visual Basic) ve /moduleassemblyname (C#).

Ayrıca bkz.

Görevler

Nasıl yapılır: imzasız arkadaş derlemeler (C# ve Visual Basic) oluşturma

Nasıl yapılır: imzalı arkadaş derlemeler (C# ve Visual Basic) oluşturma

Başvuru

InternalsVisibleToAttribute

StrongNameIdentityPermission

Kavramlar

Derlemeler ve genel birleştirme önbelleğine (C# ve Visual Basic)

C# Programlama Kılavuzu

Diğer Kaynaklar

Visual Basic programlama Kılavuzu