我绕着Activator.CreateInstance跑

4 篇文章 0 订阅

 想用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。
=======================================================
 
因为基础不牢和不小心,浪费了一个下午!
郁闷!!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值