为什么我会得到错误“;无法强制转换类型为';的对象;OpcCom.Factory';键入';Opc.I
本文关键字:对象 OpcCom Opc 键入 Factory 类型 错误 为什么 转换 | 更新日期: 2023-09-27 18:27:53
我使用的是带有Visual Studio 2012的OPC Foundation.NET API。当我尝试连接时,我得到了这个错误:
无法将"OpcCom.Factory"类型的对象强制转换为"Opc.IFactory"类型
在该代码中的指令new Opc.Da.Server(
处:
private void button1_Click(object sender, EventArgs e)
{
Opc.Da.Server plcServer = null;
string serverUrl = "opcda://localhost/RSLinx OPC Server";
plcServer = new Opc.Da.Server(new OpcCom.Factory(), new Opc.URL(serverUrl));
plcServer.Connect();
}
它抛出此错误是因为Opc.Da.Server
的接口需要Opc.IFactory
,但从OpcCom.Factory()
返回的内容没有实现该接口。
问题是我使用的rslinx的版本,rslinx安装了opc.net api 1.3版(我不知道),然后我安装了opc.net api 2.0来制作我的opc客户端,所以当我添加引用时,我没有注意到我有两个版本的dll,我只选择了列表中看到的第一个。
最后,我使用了OpcNetApi.dll 2.0和OpcNetApi.Com.dll 1.3。这就是它抛出错误的原因。