什么是程序集的“AllInternalsVisible”参数:InternalsVisibleTo属性?

时间:2009-10-15 01:56:32

标签: c# assemblies friend internalsvisibleto

我的IntelliSense在[assembly:InternalsVisibleTo("AssemblyName")]声明中提出了一个布尔命名参数“AllInternalsVisible =”。只需将光标放在第二个双引号后面,然后按Ctrl-空格键。那是什么 - 我在MSDN上找不到任何关于它的文档。我正在使用VS2005和.Net 2.0。

作为一个相关的主题,我正在对朋友集合进行一些研究,我认为一旦你授予朋友组件访问内部的权限,朋友程序集就可以访问所有内部组件,你无法真正对它进行细化。这是真的吗,或者有没有办法(如上所述)你可以授予朋友集会访问某些内部类型/成员但不是全部?

3 个答案:

答案 0 :(得分:6)

MSDN说:

  

InternalsVisibleToAttribute .. ::。AllInternalsVisible   属性

     

此API支持.NET Framework   基础设施并不打算   直接在您的代码中使用。

     

此属性未实现。

答案 1 :(得分:3)

Silverlight中,将此设置为true表示所有内容均为" friend"或"内部"可见性变得对另一个组件可见。如果未设置,则只有FriendAccessAllowed成员可见。

在桌面.NET中,未使用该属性,因为所有内部成员始终可见,如您在问题中所述。

答案 2 :(得分:1)

微软说:

  

此API支持.NET Framework   基础设施并不打算   直接在您的代码中使用。

     

此属性未实现。

http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.allinternalsvisible.aspx