2011-08-05 25 views
1

我有一組用於WCF服務的dll。包含契約,接口等。我想在API(客戶端)中重用此代碼,但不希望API的使用者使用這些功能。控制.NET組件的訪問

有沒有辦法說core.dll只能被clientcore.dll使用?

回答

4

那麼,您可以給core.dll的所有成員一個訪問修飾符internal,然後使用InternalsVisibleToAttribute來訪問clientcore.dll

爲了讓客戶的生活更輕鬆,您可能實際上想要使用ILmerge合併core.dllclientcore.dll。這樣你的調用者就不需要複製直接從不使用的DLL。

+0

我們分組您的DLL WIL ilmerge。結束API將只在dll上。感謝那一點。 – Arnej65

+0

@ Arnej65:然後讓核心'內部'的功能是你需要做的。在編譯時你需要'InternalsVisibleTo',但在執行時它不會被實際使用,因爲所有的代碼都在一個程序集中。 –

+0

然後只需添加VisibleTo即可完成。優秀。 – Arnej65

0

肯定的是,它被稱爲:

Code Access Security

+0

如果您正在尋找在.NET中使用CAS 4,請務必從以前的版本[查看更改](http://msdn.microsoft.com/zh-cn/library/ff527276.aspx)。有一些值得注意的。 – ckittel