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#)。