Visual Studio 2013

在以下情况下,使用友元程序集尤其方便:

  • internal (C#) 的程序集中的成员。

  • internal (C#) 的现有程序集中的成员。

备注
 

internal (C#) 的所有类型和成员。

 说明

/out (Visual Basic)。

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");
    }

}


internal (C#) 类型。

B 声明为友元程序集,则验证规则如下:

  • B 的强名称密钥的公钥。

    B 的强名称:不包含程序集版本、区域性、结构或公钥标记。

  • 如何:创建未签名友元程序集(C# 和 Visual Basic)。

  • 如何:创建签名的友元程序集(C# 和 Visual Basic)。

StrongNameIdentityPermission 类还提供共享类型的功能,其与友元程序集的区别如下:

  • StrongNameIdentityPermission 应用于单个类型,而友元程序集应用于整个程序集。

  • 如果使用友元程序集,则只需声明友元关系一次。

  • internal (C#)。

/moduleassemblyname (C#)。

相关文章: