【发布时间】:2010-04-09 22:08:43
【问题描述】:
我有以下问题: 我有一个使用第三方 COM 组件的 C# 项目。
所以问题是上面的组件有一个方法,它接受一个字符串和一些键值对作为参数。我已经设法通过 JavaScript 调用该方法:
var srcName
srcName = top.cadView.addSource( 'Database', { driver : 'Oracle', host : '10.10.1.123', port : 1234, database : 'someSID', user : 'someuser', password : 'somepass' } )
if ( srcName != '' )
{
...
}
...而且效果很好。但是我不知道如何使用 C# 来做同样的事情。我尝试将这些对作为 Dictionary 和 Struct/Class 传递,但它给我一个“指定的演员表无效”。例外。我也尝试过像这样使用 Hashtable:
Hashtable args = new Hashtable();
args.Add("driver", "Oracle");
args.Add("host", "10.10.1.123");
args.Add("port", 1234);
args.Add("database", "someSID");
args.Add("user", "someUser");
args.Add("password", "samePass");
String srcName = axCVCanvas.addSource("Database", args);
虽然它没有抛出异常,但它仍然无法完成工作,将我写在日志文件中
[错误][14:38:33.281] Cad::SourceDB::SourceDB(): 缺失 参数“驱动程序”
【问题讨论】:
-
Mmmmm 从 javascript 访问数据库...
-
你有描述 COM 接口的类型库吗?