加载程序集后,实例化它时:
Assembly asm = Assembly.LoadFile(@"c:\file.dll");
Type type = asm.GetType("DLLTYPE");
object instance = Activator.CreateInstance(type);
C#如何知道类型?
从我的逻辑来看,dll应该有定义对象类型的标题。
那么为什么是DLLTYPE
字符串呢?
加载程序集后,实例化它时:
Assembly asm = Assembly.LoadFile(@"c:\file.dll");
Type type = asm.GetType("DLLTYPE");
object instance = Activator.CreateInstance(type);
C#如何知道类型?
从我的逻辑来看,dll应该有定义对象类型的标题。
那么为什么是DLLTYPE
字符串呢?
C#如何知道类型?
您已将其作为参数传递:
Type type = asm.GetType("DLLTYPE");
那么为什么是“DLLTYPE”字符串呢?
它是您要实例化的命名空间和类名:
Namespace.ClassName
请小心,因为如果您在类型名中输入错误,此方法将返回 null。如果要确保类型存在,可以使用以下重载:
Type type = asm.GetType("Namespace.ClassName", true);
这将引发异常而不是返回 null,这将更容易调试,而不是您在该Activator.CreateInstance
方法上获得的 NRE。