您的位置:首页 > 其它

两种动态创建对象的方法

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());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: