この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 21086|答える: 0

[出典] InternalsVisibleToAttributeは、内部メンバーを指定されたフレンドアセンブリに公開します

[リンクをコピー]
掲載地 2017/02/06 14:27:59 | | |
有源議会への序章
内部クラスのメンバー(型、メソッド、プロパティ、変数、イベントなど)は同じアセンブリ内でのみアクセスできることがわかっています(もちろん、ここでは通常の方法で、リフレクションによるアクセスは含めません)。 このルールは に属しています。 .NET 2.0はやや機能が悪く、アセンブリの内部メンバーを特定のメンバーがアクセスできるように設定できます。 これらの内部メンバーを含むアセンブリをソースアセンブリと呼び、アセンブリ集合をフレンドアセンブリと呼びます。

フレンドアセンブリの利用
この属性はアセンブリレベルで使用されます。


このようにして、FriendAssemblyプログラムがアセンブリを参照した後、内部のNameプロパティにアクセスできます。
一般的に言えば、このアセンブリ:InternalsVisibleTo("FriendAssembly")はアセンブリレベルにあるため、このアセンブリー AssemblyInfo.csに置く方が適しています。

InternalsToVisibleTo を使うタイミング
実際、この属性は一般的な用途では使われておらず、悪用すべきではありません。 一般的に、よく設計されたアセンブリは外部に公開されている必要はありません。
しかし、ユニットテストのシナリオではこの機能を活用できます。 この機能を使うことで、ユニットテストのコードが内部メンバーにアクセスできるように指定でき、それらのメンバーをユニットテストできます。 しかし、これを行うとソースアセンブリにフレンドアセンブリの名前を死にしておく必要があり、セキュリティ上の問題が生じます。 シグネチャアセンブリを導入することでセキュリティを保証できます。

InternalsToVisibleToと署名アセンブリ
フレンドメタアセンブリの名前と公開鍵をInternalsVisibleToに直接指定できます。
VSの開発者コマンドラインを使ってFriendAssemblyの公開鍵を生成してください:


フレンドアセンブリの名前とソースアセンブリの公開鍵を指定します:


実際、フレンドアセンブリはソースアセンブリを参照し、署名済みアセンブリは符号なしアセンブリを参照し、署名済みアセンブリは符号なしフレンドアセンブリを指定できないため、どれも署名されているため署名が必要です。





先の:自動的にTenpayの支払い振込ページに移動し、情報を入力してください
次に:InternalsVisibleToを使って「friend assembly」をassemblyに追加してください
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com