2011-08-05 13 views
1

私はWCFサービス用のDLLのグループを持っています。契約、インタフェースなどを含んでいます。このコードをAPI(クライアント側)で再利用したいのですが、APIのコンシューマにこれらの機能を使用させたくありません。.NETアセンブリへのアクセスの制御

core.dllがclientcore.dllによってのみ使用できると言う方法はありますか?

答えて

4

まあ、core.dllのすべてのメンバーにinternalのアクセス修飾子を指定し、次にInternalsVisibleToAttributeを使用してclientcore.dllにアクセスできます。

お客様の生活をより快適にするために、実際にcore.dllをを使用してclientcore.dllに結合したい場合があります。そうすることで、呼び出し元は決して直接使用しないDLLをコピーする必要はありません。

+0

私たちはあなたのdllウィルilmergeをグループ化してきました。最後のAPIはdll上にあります。その点をありがとう。 – Arnej65

+0

@ Arnej65:次に、コアの内部機能を「内部」にするだけで必要なのです。コンパイル時に 'InternalsVisibleTo'が必要ですが、実行時にすべてのコードが1つのアセンブリに収まるため、実際には*使用されません。 –

+0

それから、VisibleToを追加するだけで完了です。優れた。 – Arnej65

1

はい、タイプを内部にして、InternalsVisibleToAttributeクラスを使用してフレンドのアセンブリメカニズムを使用してください。

0

必ず、それが呼ばれています:

Code Access Security

+0

.NET内でCASを使用する場合は、 4、以前のバージョンの[変更点を確認する](http://msdn.microsoft.com/en-us/library/ff527276.aspx)を必ず確認してください。注目すべきものがいくつかあった。 – ckittel

関連する問題