2015-09-04 79 views
0

我正在使用C#编写库,我的库使用第三方.NET库。当我推出我的图书馆时,我必须包括第三方图书馆以及图书馆。但是,我想阻止我的库(客户端代码)的用户直接使用第三方库。有什么方法可以在编译时或运行时强制执行?拒绝客户端代码访问.NET中的第三方库

+0

不,如果我可以访问它,我可以用它。 – Eser

回答

0

如果这样做没有法律问题,您可以使用ILMerge将第三方库合并到您自己的库中。

您可以选择从第三方库内部公开课程。这样,代码的客户端将无法访问第三方库中的功能(除非他们做了某种破解)。例如,我不确定是否有人可以使用某种类型的Reflection代码来使用内部类。

看看this article

+0

如果您通过ILMerge将公共第三方课程内部化,则您具有更高的安全性。安全是相对的事情。你也可以[混淆](https://en.wikipedia.org/wiki/Obfuscation_(软件))你的图书馆(与合并的第三方图书馆)。这将使它更加安全。其他用户甚至不知道第三方库正在使用中。 –

+0

我同意你的意见。如果有人决心破解它,他会的。然而,正如我所说的,安全是一个相对的事情。也许对于提出这个问题的用户(user2242746),使其难以使用第三方就足够了(满足他的要求)。 –

+0

@ user2242746,你会接受什么样的安全级别? –