C# 哪些属性允许您限制对DLL的访问?
我记得我曾经简要地读过,您可以添加程序集属性,以便只允许特定程序集调用程序集。但我记不起我在哪里看到的,也记不起怎么做——有人能给我指出正确的方向吗 我想说清楚,这个问题是:C# 哪些属性允许您限制对DLL的访问?,c#,security,.net-4.0,attributes,assemblies,C#,Security,.net 4.0,Attributes,Assemblies,我记得我曾经简要地读过,您可以添加程序集属性,以便只允许特定程序集调用程序集。但我记不起我在哪里看到的,也记不起怎么做——有人能给我指出正确的方向吗 我想说清楚,这个问题是: 我有组件A和组件B 程序集B需要访问程序集A中的某些成员 这两个程序集将以软件产品的形式发送给其他程序集 我只希望程序集B能够看到程序集A中的成员 任何需要在程序集A中使用某物的人都必须通过程序集B来使用。程序集A的成员都是隐藏的/内部的,因此第三方无法看到它们 可以使用允许引用程序集的程序集查看标记为内部的类和成员。我相
内部的类和成员。我相信没有办法阻止程序集引用您的程序集并访问所有public
类和成员
注意:使用反射,任何程序集都可以访问任何类或成员,无论该类或成员是public
还是internal
(或private
),只要应用程序以完全信任的方式运行(通常是这样)。就是您要查找的:
友元程序集是
可以访问其他程序集的朋友
(Visual Basic)或内部(C#)类型
以及各位议员。如果你发现了一个
集合作为朋友集合,您没有
不再需要标记类型和成员
为了让他们成为公众
由其他程序集访问
没有这样的程序集属性,只有一个程序集属性与类型可见性相关,它授予其他程序集对程序集内部构件的访问权限-。我认为没有任何属性可以设置为限制访问权限
我用这个链接作为参考
对于DLL代码本身,请尝试使用internal标记只有程序集才能访问的项。对于外部世界真正可以访问的项目,请标记为public。哪个框架版本?这是我需要的。我希望公共成员是公共的,但内部成员要跨越程序集。我现在就试试。这就是我所指的。是的,我想我的问题不清楚,我会更新它,因为@dtb的答案正是我想要的。