在运行Reflector以找到WPF应用程序中的错误的根本原因期间,我偶然发现了FriendAccessAllowedAttribute
遍布许多不同类,成员等的内部属性.但是,我无法找到究竟使用此属性的内容(如果有什么).我的猜测是这是C++/CLI基础结构的一部分,但是对MSDN,C++/CLI规范和CLI规范的搜索都没有发现.有人知道它的用途吗?
我记得,这是一种控制框架中朋友程序集之间依赖关系的方法.基本上,当您授予程序集A"朋友"对程序集B的访问权限时,您不希望B的所有内部成员都可用于A,因为这样的成员的任何更改都可能会破坏(同样,它会增加需要审查的安全表面区域).很确定这个属性在Silverlight中很受尊重,不确定完整的Framework.
有趣的是,该属性归因于自身!
从C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll
4.0 版反编译:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum |
AttributeTargets.Constructor | AttributeTargets.Method |
AttributeTargets.Property | AttributeTargets.Field |
AttributeTargets.Event | AttributeTargets.Interface,
AllowMultiple = false, Inherited = false)]
[FriendAccessAllowed]
internal sealed class FriendAccessAllowedAttribute : Attribute
{
}
Run Code Online (Sandbox Code Playgroud)
所以我认为它只能被指定为mscorlib
.
编辑 Microsoft 的属性参考源显示定义在旁边InternalsVisibleToAttribute
并包括注释字符串:
如果友元程序集的 AllInternalsVisible 不为 true,则 FriendAccessAllowed 属性指示与该友元程序集共享哪些内部。
归档时间: |
|
查看次数: |
1636 次 |
最近记录: |