c# - 允许您限制对 DLL 的访问的属性是什么?

标签 c# security .net-4.0 attributes assemblies

我记得简要地读过,您可以添加程序集属性,这样您就可以只允许特定的程序集调用程序集。但我不记得我在哪里看到的或如何做到的 - 有人可以指出我正确的方向吗?

为了清楚起见,这个问题是在问:

  1. 我有程序集 A 和程序集 B。
  2. 程序集 B 需要访问程序集 A 中的某些成员。
  3. 这两个程序集将以软件产品的形式发送给其他人。
  4. 我只希望程序集 B 能够看到程序集 A 中的成员。
  5. 任何需要在程序集 A 中使用某些东西的人都必须通过程序集 B 来使用。程序集 A 的成员都是隐藏的/内部的,所以第三者看不到他们。

最佳答案

您可以使用 InternalsVisibleTo Attribute允许引用您的程序集的程序集查看标记为 internal 的类和成员。我相信没有办法阻止程序集引用您的程序集并访问所有 public 类和成员。

注意:使用反射,任何程序集都可以访问任何类或成员,无论是public 还是internal(或private) ,前提是应用程序以完全信任的方式运行(通常是这种情况)。

关于c# - 允许您限制对 DLL 的访问的属性是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5980405/

相关文章:

security - Docker只读套接字卷

.NET - 数据集是 IEnumerable 的派生物?

c# - .net 4 string[]参数默认值设置

c# - 通过枚举值+依赖注入(inject)创建实例

c# - .net 6 最小 api docker 问题 : error CS5001: Program does not contain a static 'Main' method suitable for an entry point

security - 为了安全起见, session key 应包含多少个字符?

使用 C 在 Windows 中更改线程权限

c# - 如何对 Dynamic 对象使用 Parallel.ForEach 方法

c# - 如何在事件处理程序内调用 WebBrowser 上的方法?

c# - TreeView : SelectedNode doesnt work for me