想用Activator.CreateInstance动态创建对象:
1 查找MSDN,发现Activator.CreateInstance(string assemblyName, string typeName)方法,
但不了解assemblyName,自然运行不成功!
2 继续查找MSDN,发现Activator.CreateInstance(type TypeName)方法,就寻找type的获取
方法
3 查找MSDN,发现可以用Type.GetType(string typeName)获取,但对于typeName应该如何
设定不懂,屡战屡败。。。
。。。。。。。。
N 感谢XX(忘了网址)说:Type.GetType("NameSpaceClassName");
Type.GetType("NameSpaceClassName, AssemblyName");
知道了问题出在AssemblyName上
N+1 感谢
Wayfarer's Prattle的这个文章,给我补了AssemblyName这一课
N+2 对于外部引用的DLL,我们必须使用
Type.GetType("NameSpaceClassName, AssemblyName");
来获取类型,对于内部的类型,我们只要用 Type.GetType("NameSpaceClassName");
就行啦
N+3 既然可以用Activator.CreateInstance(type TypeName),也就一定可以用
Activator.CreateInstance(string assemblyName, string typeName),再次尝试使用失败
N+4 发现Activator.CreateInstance(str,str)返回的是一个ObjectHandler
N+5 把返回的OjectHandler.Unwrap(), 成功
END。
=======================================================
因为基础不牢和不小心,浪费了一个下午!
郁闷!!