就他吧-9ta8为您提供:身份证查询、15位转16位身份证,手机号码归属地查询,IP地址查询服务,城市天气预报查询,
列车时刻表简易快速查询等等查询服务,就他吧欢迎您的光临!!
梦幻Dot Net
科学地研究编程,
品味开发的艺术
博客园
首页
社区
新随笔
联系
订阅
管理
随笔-95 评论-720 文章-16 trackbacks-102
.net反射技术的应用—如何调用Java的COM接口
前两天做了一个银行的电子支付接口,我用的是C#开发语言,银行给我们的是Java的COM组件(名字是:RSASig.class),按照银行的说明,一步一步做了配置,大家都知道Java的COM在windows上注册之后是没有动态链接库的,那该怎么在C#中调用其中的方法呢?如果用过.Net反射技术的朋友们很快就会想到使用反射。下面是C#实现反射代码:
1
Assembly assembly
=
null
;
2
Type type
=
null
;
3
string
dllPath
=
@"
c:\Reflected.dll
"
4
try
5
{
6
assembly
=
Assembly.LoadFile(dllPath);
7
type
=
assembly.GetType(typeName,
true
,
true
);
//
cMyResult
8
}
9
catch
(FileNotFoundException)
10
{
11
errMsg
=
"
Could not load Assembly: \
""
+ dllPath +
"
\
""
;
12
return
null
;
13
}
14
catch
(TypeLoadException)
15
{
16
errMsg
=
"
Could not load Type: \
"
string
\
"
\n from assembly: \
""
+ dllPath +
"
\
""
;
17
return
null
;
18
}
19
20
MethodInfo method
=
type.GetMethod(methodName);
//
提取方法信息
21
object
obj
=
assembly.CreateInstance(typeName);
//
创建实例
22
23
object
s
=
method.Invoke(obj,parameters);
//
new object[]{"jiangli"});
24
assembly
=
null
;
25
type
=
null
;
26
method
=
null
;
27
从这段代码中可以看出,这是需要动态链接库的。而Java却没有,怎么用呢?这是摆在面前的一个问题。再仔细看看他的说明,他们在ASP中是这么调用的,Set Obj = Server.CreateObject("ccb.pub.RSAsig"),灵机一动,在VB中是不是也可以这么用呢?马上就就在VB中作了一个实验,结果成功了,VB中的代码是这样实现的:
Namespace test
Namespace
test
Public
Class cJava
Class
cJava
Dim
obj
As
Object
=
Nothing
Public
Sub New()
Sub
New
()
obj
=
GetObject
(
"
java:RSASig
"
)
End Sub
Public
Function generateKeys()
Function
generateKeys()
As
Object
Return
obj.generateKeys()
End Function
Public
Function getPrivateKey()
Function
getPrivateKey()
As
String
Return
obj.getPrivateKey()
End Function
Public
Function getPublicKey()
Function
getPublicKey()
As
String
Return
obj.getPublicKey()
End Function
'
签名结果信息
Public
Function generateSigature()
Function
generateSigature(
ByVal
singstr
As
String
)
As
String
Return
obj.generateSigature(singstr)
End Function
Public
Function setPublicKey()
Function
setPublicKey(
ByVal
pubKey
As
String
)
As
String
Return
obj.setPublicKey(pubKey)
End Function
Public
Function verifySigature()
Function
verifySigature(
ByVal
orginstr
As
String
,
ByVal
sigStr
As
String
)
As
Object
Return
obj.verifySigature(sigStr, orginstr)
End Function
End Class
End Namespace
于是就把它封装成类库,然后在C#中调用,OK,成功了。苦苦寻找了一个星期.net怎么调用Java类中的方法,终于在此画上了一个句号。
不知道这算不算是.net和java互操作的一个案例。希望这篇文章能对还正在苦苦寻觅.net和java互操作的朋友有点启发。
如果各位大虾还有别的更简便的方法,请指教。
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted on 2005-08-15 15:01
振河
阅读(3030)
评论(10)
编辑
收藏
评论:
762475
#1楼
2005-08-16 10:33
|
小飞[未注册用户]
c#调用方法不对,可以直接用C#去反射!
回复
引用
#2楼
2005-08-16 11:19
|
振河
@小飞
能不能介绍详细点?
回复
引用
#3楼
2005-08-16 14:45
|
flyarror[未注册用户]
搂主你做的是那个银行的?我好像以前也作过的,呵呵
回复
引用
#4楼
2005-09-02 10:16
|
ynx[未注册用户]
建行的
回复
引用
#5楼
2005-12-03 01:12
|
xiaodao[未注册用户]
用Reflecte工具直接看VB.NET的GetObject方法是怎么实现的,直接就调相关的类就行了。
回复
引用
#6楼
2006-08-29 08:56
|
我用了[未注册用户]
obj = GetObject("java:RSASig")
这一句出错啊。
提示无法注册ActiveX组件
回复
引用
#7楼
2007-01-09 14:01
|
地方[未注册用户]
地方
回复
引用
#8楼
2007-01-09 14:02
|
***[未注册用户]
大家好.
回复
引用
#9楼
2007-01-09 14:40
|
温家宝[未注册用户]
大家好啊
回复
引用
#10楼
2007-05-28 14:25
|
cybernaute[未注册用户]
你好,能具体点么?
联系,icyker@gmail.com
回复
引用
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
Android平台发现新型手机病毒Rootsmart
·
HTC首款Android4.0手机大曝光
·
这是不是你期待的 iPad 3?
·
瑞士公司对苹果提起新专利权诉讼
·
微软看重平板市场:ARM版Win8与x86版同步推
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
清新的空气清晰的你愉快的心情陪伴你,
欢迎来到梦幻Dot Net。
昵称:
振河
园龄:
6年6个月
粉丝:
38
关注:
0
<
2005年8月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
.Net设计模式(21)
ASP.Net(9)
C#(12)
C#2005(3)
DotText
JavaScript(8)
Reporting Services(7)
SD Channel
SQL Server 2000(10)
Visio Studio 2005 WPF(2)
Web and Windows Service(5)
其他(8)
软件工程(7)
正则表达式(2)
随笔档案
2008年12月 (1)
2008年10月 (2)
2008年3月 (1)
2008年1月 (2)
2007年12月 (1)
2007年11月 (1)
2007年10月 (4)
2007年8月 (1)
2007年7月 (1)
2007年5月 (1)
2007年4月 (1)
2007年3月 (1)
2007年1月 (2)
2006年12月 (1)
2006年10月 (1)
2006年9月 (2)
2006年8月 (1)
2006年7月 (1)
2006年4月 (1)
2006年3月 (4)
2006年2月 (1)
2006年1月 (1)
2005年12月 (1)
2005年11月 (1)
2005年10月 (5)
2005年9月 (11)
2005年8月 (36)
2005年7月 (10)
文章分类
ASP.NET(2)
安全与加密(1)
管理(1)
生活(1)
数据库(2)
文章档案
2007年12月 (1)
2005年10月 (1)
2005年9月 (1)
2005年8月 (4)
相册
宝贝动物
精彩贴图
生活餐具
.NET技术网站
ASP.NET开发实践系列课程
ASP酷技术网
CodeProject
KnowDotNet
Visual Studio.net专栏
博客堂
发赛特技术网
酷网博客
孟宪会.NET开发者园地
太平洋开发编程技术与实例
天新网DotNet
新一代技术网
站长中国
正则表达式
中国C#技术网站
中文C#站
其他技术网
ASP.NET Forums 官方中文网站
MSDN中文站
动态网站制作指南
正则表达式网站(Eng)
中国BS网
中国Office Online
中国WEB开发者网络
数据库技术网站
SQL Server 提示与技巧
数据仓库之路
友情连接
就他吧服务
就他吧为您提供软件开发,网站设计,网站开发维护,各种办公软件、管理软件开发等等,详情请进入
http://www.9ta8.com
幽默笑话
笑话大全、智慧快餐、暴笑网文、高笑图片、恐怖故事、幽默短信、相声小品尽在其中,就他吧幽默站开心您每一天
积分与排名
积分 - 428825
排名 - 148
最新评论
阅读排行榜
评论排行榜
推荐排行榜
就他吧-9ta8伴您开心每一天