【发布时间】:2011-06-21 05:49:55
【问题描述】:
我为执行某些功能的客户准备了一些 C# dll。
问题是我也使用相同的 dll。
我怎样才能让他可以使用一些方法以及我可以使用所有方法。
谢谢,
【问题讨论】:
标签: c# dll encapsulation
我为执行某些功能的客户准备了一些 C# dll。
问题是我也使用相同的 dll。
我怎样才能让他可以使用一些方法以及我可以使用所有方法。
谢谢,
【问题讨论】:
标签: c# dll encapsulation
使用共享代码库
只需编译两个项目。一个包含您提供给客户的 DLL 的源代码,另一个包含您自己保留的所有源代码。
提供网络服务
为客户提供网络服务以访问他们被允许访问的代码。
在共享 DLL 中使用 InternalsVisibleTo 属性
internal
[assembly: InternalsVisibleTo] 添加到共享DLL【讨论】:
InternalsVisibleTo,因为我认为它是最简单的。谢谢
你必须编译你的程序集的两个版本。您分发给客户的版本需要完全排除您不希望他们访问的方法,否则无论您如何“隐藏”它们,它们都可以通过反射访问。
(假设您不希望对您的程序集进行签名)
【讨论】:
您可以像#define 一样使用C# preprocessor directives 从同一代码库编译两个版本的库。
然后将一个版本发送给您的客户,您自己保留另一个版本。
【讨论】: