我记得简要地读过,您可以添加程序集属性,这样您就可以只允许特定的程序集调用程序集。但我不记得我在哪里看到的或如何做到的 - 有人可以指出我正确的方向吗?
为了清楚起见,这个问题是在问:
- 我有程序集 A 和程序集 B。
- 程序集 B 需要访问程序集 A 中的某些成员。
- 这两个程序集将以软件产品的形式发送给其他人。
- 我只希望程序集 B 能够看到程序集 A 中的成员。
- 任何需要在程序集 A 中使用某些东西的人都必须通过程序集 B 来使用。程序集 A 的成员都是隐藏的/内部的,所以第三者看不到他们。
最佳答案
您可以使用 InternalsVisibleTo Attribute允许引用您的程序集的程序集查看标记为 internal
的类和成员。我相信没有办法阻止程序集引用您的程序集并访问所有 public
类和成员。
注意:使用反射,任何程序集都可以访问任何类或成员,无论是public
还是internal
(或private
) ,前提是应用程序以完全信任的方式运行(通常是这种情况)。
关于c# - 允许您限制对 DLL 的访问的属性是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5980405/