如何访问内部类的程序集的? 说我要访问System.ComponentModel.Design.DesignerHost。 这里的DesignerHost是一个内部和密封类。
我怎么能写代码加载程序集和类型?
如何访问内部类的程序集的? 说我要访问System.ComponentModel.Design.DesignerHost。 这里的DesignerHost是一个内部和密封类。
我怎么能写代码加载程序集和类型?
在一般情况下,你不应该这样做-如果一个类型已被标记内部,这意味着你并不意味着从组件外部使用它。 在以后的版本也可能被删除,改变等。
然而,反射确实允许您访问类型和成员不属于公共-只是寻找这需要重载BindingFlags
参数,包括BindingFlags.NonPublic
在您传递的标志。
如果你有型(包括装配信息)的全名 ,然后只调用Type.GetType(string)
应该工作。 如果你事先知道组装,并且知道组件内的公共类型,然后使用typeof(TheOtherType).Assembly
获得装配基准通常是简单的,那么你可以调用Assembly.GetType(string)
。
加载程序集并输入您在您的示例引用:
Assembly design = Assembly.LoadFile(@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Design.dll");
Type designHost = design.GetType("System.ComponentModel.Design.DesignerHost");