小李菜刀
沉迷于程序开发中....
博客园
首页
新随笔
联系
订阅
管理
6 Posts :: 0 Stories :: 21 Comments :: 3 Trackbacks
公告
昵称:
小李菜刀
园龄:
8年1个月
粉丝:
1
关注:
0
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
技巧(1)
心得(5)
随笔档案
2005年3月 (1)
2005年2月 (1)
2005年1月 (1)
2004年10月 (1)
2004年9月 (2)
友情链接
床上用品网
杭州澳风汽车用品有限公司
杭州有光科技有限公司
杭州有光寝饰有限公司
在MSN上的space
中国寝具网
最新评论
阅读排行榜
评论排行榜
推荐排行榜
Reflection中对于out类型的获取的另外一种方法
看到鞠强兄的帖子
Reflection中对于out类型的获取
,觉得大家使用Reflection时忘记了一个非常强大的函数InvokeMember,而是先获取一个MethodInfo或PropertyInfo对象,然后再调用相应的方法。其实直接调用InvoeMember方法更简单、更高效、通用性更强。再加上我以前发的帖子
通过反射调用COM对象
中的写的Variant包装类,解决这个问题就非常简单了。看来把Reflection的操作包装一下俺还是有先见之明的。
代码如下:
Using directives
#region
Using directives
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Reflection;
#endregion
namespace
ConsoleApplication1
{
class
Test
{
public
void
SetValue(
string
value1,
out
string
value2)
{
value2
=
"
hello
"
;
}
public
void
SetValue(
string
value1)
{
}
}
class
Program
{
static
void
Main(
string
[] args)
{
Variant v
=
Variant.CreateInstance(
"
ConsoleApplication1.Test
"
);
object
[] paras
=
new
object
[]
{
"
xxx
"
,
null
}
;
object
o
=
v.InvokeMethod(
"
SetValue
"
, paras);
Console.WriteLine(paras[
1
]);
}
}
}
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted on 2004-10-11 21:58
小李菜刀
阅读(1248)
评论(3)
编辑
收藏
Feedback
51132
#1楼
2004-10-11 22:48
鞠强
哈哈,菜刀兄!!!十分感谢危机之中给偶的帮助!明天到公司后,验证一下您的代码。十分感谢帮助!!!
回复
引用
#2楼
2004-10-12 09:26
juqiang
呵呵,菜刀兄。你这段代码对于call .net的没有问题。但是如果call com组件,会提示“类型不匹配”的。
回复
引用
#3楼
[
楼主
]
2004-10-12 10:21
小李菜刀
应该不会的,因为包装一个Varint就是调用Com对象才写的。
把你的代码贴出来看看。
回复
引用
查看
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
维棉网被曝欠数百万广告费 再度借裁员减压
·
iOS曝出新漏洞:可绕过密码保护访问联系人信息
·
如何评估新项目
·
新闻博客:是“偷窃” 还是 “整理”?
·
未来iOS设备或内置淘宝京东等B2C商城
»
更多新闻...
最新知识库文章
:
·
编程的艺术:漂亮的代码和漂亮的软件
·
GIT分支管理是一门艺术
·
编程:是一门艺术
·
编程是一门艺术吗?
·
对Java初学者的忠告
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
Powered by:
博客园
Copyright © 小李菜刀