限制访问.NET程序集?(Restrict access to .NET assembly?)

2019-07-17 20:10发布

有没有办法有只有经授权的来源可访问的.NET程序集?

我的意思是我想有一个包含组件的DLL,但我不希望任何人能在我的解决方案中使用这些组件,但其他DLL EXE文件。 我想他们是在分离的DLL虽然。

在命名空间限制也可能是一个好主意,如果这个功能存在那里。

有没有办法?

Answer 1:

您可以创建内部类。 而给你指定的组件通过访问这些类InternalsVisibleTo属性。

该组件应强命名。 你可以找到有关属性的更多信息这篇文章 。



Answer 2:

具有内部类的问题是内部没有意义在IL和类可以通过反射被调用。 因此,使用InternalsVisibleTo更是一个编译器比什么都重要帮手。

您可以进一步使用走一步StrongNameIdentityPermission如果公钥不匹配,那么一个安全异常-这将检查强命名程序调用到代码的公钥。 当代码通过反射调用此甚至强制执行。



文章来源: Restrict access to .NET assembly?