zoukankan
html css js c++ java
两种动态创建对象的方法
1、如果要创建的对象,在一个assembly中,那么方法可以有很多。如这种方式:
System.Reflection.Assembly ass
=
System.Reflection.Assembly.LoadFrom(
@"
D:Programsvs.netInterfaceCominDebugCom.dll
"
);
Type t
=
ass.GetType(
"
Com.Class1
"
);
string
[] implCtorSig
=
{
"
System.String
"
}
;
Type[] ctorSigArr
=
Type.GetTypeArray(implCtorSig);
System.Reflection.ConstructorInfo ctorInfo
=
t.GetConstructor(ctorSigArr);
object
[] ctorArgs
=
{
"
1
"
}
;
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
"
);
object
[] ctorArgs
=
{
"
1
"
}
;
System.Runtime.Remoting.ObjectHandle oh
=
Activator.CreateInstance(ass.FullName,t.FullName,
true
,System.Reflection.BindingFlags.CreateInstance,
null
,ctorArgs,System.Globalization.CultureInfo.CurrentCulture,
new
Object[]
{}
,
null
);
Com.IDict dict
=
(Com.IDict)(oh.Unwrap());
查看全文
相关阅读:
c#9
Jmeter--自己写并发压测脚本一定会遇到的类
Jmeter从数据库获取测试数据, 作为下一个接口参数方法
Jmeter-从数据库中获取数据并作为变量传输
Java文件操作
Java读取文件
Java字符串处理——String类常用方法
Eclipse导出可执行jar包步骤
批处理常用DOS命令之for简单 002
批处理常用DOS命令之for简单 001
原文地址:https://www.cnblogs.com/juqiang/p/45430.html
最新文章
关于磁盘,磁柱,磁头,扇区等
鸟哥的Linux私房菜第零章
C Primer Plus(第五版)4
最小生成树Jungle Roads
一个人的旅行(用小技巧转化为dijkstra算法)
Dijkstra算法求单源最短路径
类2
类
图片处理
输入密码的写法
热门文章
函数返回值为字符串的几种写法
C++读写文件的简单例子
定制类
软件测试4
软件测试3
软件测试2
软件测试1
Problem Statement
Supplementary Specifications
Glossary
Copyright © 2011-2022 走看看