2009-10-08 1 views
7

Reflectorを介して実行中に、WPFアプリケーションのバグの根本原因を見つけると、多くの異なるクラス、メンバーなどにわたっている内部属性FriendAccessAllowedAttributeが見つかりました。 (この属性があれば)この属性を正確に使用するものを見つけることができません。私の推測では、これはC++/CLIインフラストラクチャの一部ですが、MSDN、C++/CLI仕様、およびCLI仕様の検索では何も表示されません。誰がそれが何のために使われているのか分かっていますか?WPFでの内部FriendAccessAllowedAttributeの使用

+0

この属性を持つ 'System.Threading.Tasks.Task'にはいくつかのフィールド/メソッドもあります。 –

答えて

6

私が思い出したように、これはフレームワークのフレンド集合間の依存関係を制御する方法でした。基本的にアセンブリBにアセンブリAの「フレンド」アクセスを許可した場合、すべてのBの内部メンバーをAが利用できるようにしないでください。そのようなメンバーへの変更は、レビューする必要があるセキュリティの面積を増加させる)。この属性がSilverlightで尊重されていることを確かめてください。完全なフレームワークについては不明です。

+0

ええ、私はリフレクターをしばらく掘り下げていましたが、Silverlightをチェックアウトするとは思っていませんでした。 – user7116

1

興味深いことに、その属性はそれ自身に起因しています。 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 
{ 
} 

だから私はそれがmscorlibの友人が割り当てられている選択したアセンブリによってのみを使用することができます推測。


EDITMicrosoft's reference source for the attributeは定義がInternalsVisibleToAttributeと並んで、コメント文字列を含んで示しています

AllInternalsVisible友達アセンブリのために真でない場合、FriendAccessAllowed属性はその友人と共有されている内部を示していますアセンブリ。

関連する問題