在运行时概念期间加载程序集
本文关键字:加载 程序集 运行时 | 更新日期: 2023-09-27 17:54:07
加载程序集后,实例化程序集时:
Assembly asm = Assembly.LoadFile(@"c:'file.dll");
Type type = asm.GetType("DLLTYPE");
object instance = Activator.CreateInstance(type);
c#是如何知道类型的?
从我的逻辑,dll应该有头定义对象类型。
那么为什么DLLTYPE
字符串是for ?
c#是如何知道类型的?
您已将其作为参数传递:
Type type = asm.GetType("DLLTYPE");
那么为什么是"DLLTYPE"字符串呢?
是要实例化的名称空间和类名:
Namespace.ClassName
要小心,因为如果在typename中出错,这个方法将返回null。如果要确保该类型存在,可以使用以下重载:
Type type = asm.GetType("Namespace.ClassName", true);
这将抛出一个异常,而不是返回null,这将更容易调试,而不是你在Activator.CreateInstance
方法上得到的NRE。