Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 哪些属性允许您限制对DLL的访问?_C#_Security_.net 4.0_Attributes_Assemblies - Fatal编程技术网

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的成员都是隐藏的/内部的,因此第三方无法看到它们 可以使用允许引用程序集的程序集查看标记为内部的类和成员。我相

我记得我曾经简要地读过,您可以添加程序集属性,以便只允许特定程序集调用程序集。但我记不起我在哪里看到的,也记不起怎么做——有人能给我指出正确的方向吗

我想说清楚,这个问题是:

  • 我有组件A和组件B
  • 程序集B需要访问程序集A中的某些成员
  • 这两个程序集将以软件产品的形式发送给其他程序集
  • 我只希望程序集B能够看到程序集A中的成员
  • 任何需要在程序集A中使用某物的人都必须通过程序集B来使用。程序集A的成员都是隐藏的/内部的,因此第三方无法看到它们
  • 可以使用允许引用程序集的程序集查看标记为
    内部的类和成员。我相信没有办法阻止程序集引用您的程序集并访问所有
    public
    类和成员

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

    就是您要查找的:

    友元程序集是 可以访问其他程序集的朋友 (Visual Basic)或内部(C#)类型 以及各位议员。如果你发现了一个 集合作为朋友集合,您没有 不再需要标记类型和成员 为了让他们成为公众 由其他程序集访问


    没有这样的程序集属性,只有一个程序集属性与类型可见性相关,它授予其他程序集对程序集内部构件的访问权限-。

    我认为没有任何属性可以设置为限制访问权限

    我用这个链接作为参考


    对于DLL代码本身,请尝试使用internal标记只有程序集才能访问的项。对于外部世界真正可以访问的项目,请标记为public。

    哪个框架版本?这是我需要的。我希望公共成员是公共的,但内部成员要跨越程序集。我现在就试试。这就是我所指的。是的,我想我的问题不清楚,我会更新它,因为@dtb的答案正是我想要的。