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());
查看全文
相关阅读:
zipkin启动报错(Caused by: java.lang.ClassNotFoundException: zipkin.Component)的解决方法
Java中的long与double的区别
redis使用笔记
解决node编程频繁修改代码,需要重启服务器问题
远程连接mysql要点 虚拟主机定义与分类
详析静态网站与动态网站区别(服务器ip dns 端口)
JavaEE-实验四 HTML与JSP基础编程
JavaEE-实验三 Java数据库高级编程
JavaEE-实验二 Java集合框架实验
mysql中文乱码 常见编码问题解决方法分享
原文地址:https://www.cnblogs.com/juqiang/p/45430.html
最新文章
【转】python通过文件头判断文件类型
解析纯真IP地址库
弃坑pexpect,入坑paramiko
div上下左右居中方法
c3p0:Connections could not be acquired from the underlying database!解决方案
Could not parse mapping document from input stream
ssh简单入门级案例教程
Bukkit插件编程之检测玩家受到的伤害是来自投射类武器还是近身武器
Mysql8.0.11安装以及注意事项
javaweb防止表单重新提交
热门文章
struts实现邮件发送功能
ssh整合not found class 异常总结
Bukkit编程之动态向yml文件中添加属性
解决依赖冲突:maven-enforcer-plugin插件
pinpoint与zipkin的比较
优雅的重载toString方法,打印对象内容而不是打印内存地址的方法
SpingBoot全局异常处理器被覆盖的解决办法
《深入理解Nginx:模块开发与架构解析》读书笔记
《Spring技术内幕》读书笔记
eureka 和zookeeper 区别 优势【转】
Copyright © 2011-2022 走看看