如何知道程序集是私有还是公共

时间:2009-02-15 08:53:18

标签: visual-studio assemblies private

我有一个程序集(它是一个DLL)我想知道它是私有的还是公共的? 我怎么能这样做,它有一个程序来做到这一点?或Visual Studio可以告诉你? 感谢

3 个答案:

答案 0 :(得分:3)

我假设你指的是Isolated Applications Concept of Private Assemblies。 在这种情况下,程序集需要清单(基本上指示其版本),并且可能位于某个本地文件夹或并排缓存(SxS文件夹)中。检测清单将是一个合理的指示dll是私有的(虽然我认为这不是100%的测试,它可能足以满足您的需求)

私有程序集的概念与.Net并不真正相关,因为简单地将dll放在Application private bin path上的某个任意文件夹中就足够了,在这种情况下,程序集没有什么特别之处。

GAC的概念大致与非托管dll的SxS缓存类似。其中的任何程序集都可以更容易访问,但适用于类,方法和成员的公共/私有概念不适用于程序集。

作为最后一点,你可能会(虽然我不相信你)想到'friend'装配概念。这可以通过程序集级别的InternalsVisibleTo属性或类型级别的StrongNameIdentityPermission来完成。

答案 1 :(得分:0)

不幸的是,我认为没有好的方式来解决这个问题。我所知道的最好的方法是使用Reflector来查看程序集的反编译版本。

希望有所帮助, 伊恩

答案 2 :(得分:0)

你的意思是集会是私人的还是公众的?也许你的意思是功能是私人还是公共?

但我想你可以试试Reflector