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