两种动态创建对象的方法
2004-09-22 09:42
316 查看
1、如果要创建的对象,在一个assembly中,那么方法可以有很多。如这种方式:
System.Reflection.Assembly ass = System.Reflection.Assembly.LoadFrom(@"D:Programsvs.netInterfaceCominDebugCom.dll");
Type t = ass.GetType("Com.Class1");
Type[] ctorSigArr = Type.GetTypeArray(implCtorSig);
System.Reflection.ConstructorInfo ctorInfo = t.GetConstructor(ctorSigArr);
object obj = ctorInfo.Invoke(ctorArgs);
Com.IDict idict = (Com.IDict)obj;2、如果对象在另一个assembly中,那么上述代码最后一行,会抛出一个invalid cast异常。而用下面的方式,是可以的:
System.Reflection.Assembly ass = System.Reflection.Assembly.LoadFrom(@"D:Programsvs.netInterfaceCominDebugCom.dll");
Type t = ass.GetType("Com.Class1");
Com.IDict dict = (Com.IDict)(oh.Unwrap());
System.Reflection.Assembly ass = System.Reflection.Assembly.LoadFrom(@"D:Programsvs.netInterfaceCominDebugCom.dll");
Type t = ass.GetType("Com.Class1");
Type[] ctorSigArr = Type.GetTypeArray(implCtorSig);
System.Reflection.ConstructorInfo ctorInfo = t.GetConstructor(ctorSigArr);
object obj = ctorInfo.Invoke(ctorArgs);
Com.IDict idict = (Com.IDict)obj;2、如果对象在另一个assembly中,那么上述代码最后一行,会抛出一个invalid cast异常。而用下面的方式,是可以的:
System.Reflection.Assembly ass = System.Reflection.Assembly.LoadFrom(@"D:Programsvs.netInterfaceCominDebugCom.dll");
Type t = ass.GetType("Com.Class1");
Com.IDict dict = (Com.IDict)(oh.Unwrap());
相关文章推荐
- 两种动态创建对象的方法
- C++创建对象的两种方法
- 创建两个对象的两种方法,一中\new,另外一种不new
- C++创建对象的两种方法
- c#通过类名动态创建对象方法
- JS中创建对象的两种方法
- 由使用两种方法创建对象引发的思考
- 创建UIView对象的两种方法
- js 创建对象的两种主要方法 构造函数 和 原型+构造函数组合
- java中使用字符串或者动态创建对象的三种方法(Class,Constructor,Proxy)
- java中创建String类型对象的两种方式以及在使用equals()和“==”两种方法时的区别
- Unity用法(基本对象的创建的两种方法)
- C++创建对象的两种方法(C++用new和不用new创建类对象)
- c#动态编译执行对象方法示例 运用映射机制创建对象
- 创建对象的两种方法: new 和 面向对象(对象字面量)及对象属性访问方法
- C++创建对象的两种方法
- C++创建对象的两种方法
- JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
- 浅析JS动态创建元素【两种方法】
- 两种方法使用for循环动态创建按钮(类似九宫格)