我有一个共享的 .Net DLL,由一些应用程序和一个可公开使用的 API 使用。我计划分发 API DLL,但由于链接也必须分发共享 dll。
防止使用不必要的类和数据的最佳选择是什么?
将共享 dll 中的所有内容声明为 API 中未使用的内部内容?
创建一个包含 API 和其他项目之间的所有共享项的新 DLL?
编辑:所有东西都是用 C# 创建的。我也最感兴趣的是向用户展示一个漂亮友好的 API。我的理解是,无论我做什么,用户总是可以使用反射器来查看它。
我有一个共享的 .Net DLL,由一些应用程序和一个可公开使用的 API 使用。我计划分发 API DLL,但由于链接也必须分发共享 dll。
防止使用不必要的类和数据的最佳选择是什么?
将共享 dll 中的所有内容声明为 API 中未使用的内部内容?
创建一个包含 API 和其他项目之间的所有共享项的新 DLL?
编辑:所有东西都是用 C# 创建的。我也最感兴趣的是向用户展示一个漂亮友好的 API。我的理解是,无论我做什么,用户总是可以使用反射器来查看它。
你没有提到你将使用什么语言。如果它是一个托管程序集,那么它的内容比您所要求的要多得多。
只需尝试将代码隐藏在内部方法或私有代码后面,就可以始终反编译。所以这是你必须处理的第一件事。您必须混淆该代码,以便无法理解被反编译的内容。
您可以锁定 dll,但这很难完成,并且取决于您的实施情况,它可能根本没有帮助。
我在 RedGate 购买之前使用过这个产品,它很棒。它击败了我的代码,这些代码是从网络上的随机帖子中挑选出来的。但这可能是您想要使用的东西。
http://www.red-gate.com/products/dotnet-development/smartassembly/
安全机制决策基于资源的重要性。仅仅因为通常方法越安全,性能面板就越多。