两种动态创建对象的方法
2005-03-30 02:34
459 查看
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++创建对象的两种方法
- ASP创建对象的两种方法比较
- JAVA中创建线程对象的两种方法:继承Thread和实现Runable
- 创建UIView对象的两种方法
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
- C++创建对象的两种方法
- 浅析JS动态创建元素【两种方法】
- Javascript 创建对象的两种方法
- java中创建String类型对象的两种方式以及在使用equals()和“==”两种方法时的区别
- C++创建对象的两种方法
- 读<<CLR via C#>>总结(2) 对象创建的原理和两种类型转换方法
- 动态创建用户对象对象的方法
- 在 ActionScript3 中两种创建对象的方法
- 由使用两种方法创建对象引发的思考
- C++创建对象的两种方法
- c#通过类名动态创建对象方法
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
- java中使用字符串或者动态创建对象的三种方法(Class,Constructor,Proxy)
- JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)