一尘不染

如何使用反射访问内部类

c#

如何访问程序集的内部类?说我要访问System.ComponentModel.Design.DesignerHost。这里的DesignerHost是一个内部密封类。

如何编写代码以加载程序集和类型?


阅读 346

收藏
2020-05-19

共1个答案

一尘不染

通常,您 不应该这样 做-如果类型已标记为内部类型,则意味着您不打算在程序集外部使用它。可以在更高版本中将其删除,更改等。

但是,反射 确实 允许您访问非公共的类型和成员-
只需查找带有BindingFlags参数的重载,并将其包含BindingFlags.NonPublic在传递的标志中即可。

如果您具有类型的 完全限定
名称(包括程序集信息),则只需调用即可Type.GetType(string)。如果您事先知道该程序集,并且知道该程序集内的公共类型,那么使用typeof(TheOtherType).Assembly获取程序集引用通常比较简单,则可以调用Assembly.GetType(string)

2020-05-19