Type.IsPublic和Type.IsVisible有什么区别

Nik*_*tov 3 c# reflection clr

在C#中,Type类实例具有很多属性.其中两个是IsPublicIsVisible:

  • Type.IsPublic - 获取一个值,该值指示Type是否声明为public.
  • Type.IsVisible - 获取一个值,该值指示是否可以通过程序集外部的代码访问Type.

据我所知,所有公共成员都可以在大会外访问,而其他所有公共成员都不能访问.我能想到的两个例外是成员的[InternalsVisibleTo:]程序集属性和protected修饰符.

但无论如何这两个属性有什么区别?

Mat*_*ili 5

您发布的链接说明了这一点:

IsPublic回归

如果Type声明为public且不是嵌套类型,则为true;否则为false.否则,错误.

IsVisible返回

如果当前Type是公共类型或公共嵌套类型,则所有封闭类型都是公共的,则返回true;否则返回false.否则,错误.