【发布时间】:2020-02-16 12:05:37
【问题描述】:
我有这个问题,当我尝试强制转换“批处理”对象时,我会引发异常“无效强制转换”。 你能帮我解释一下为什么吗? Vault5 对象存在且正确。
public void batch(IEdmVault5 vault5)
{
edmVault11 = (IEdmVault11)vault5;
IEdmBatchRefVars batch = default(IEdmBatchRefVars);
batch = (IEdmBatchRefVars)edmVault11.CreateUtility(EdmUtility.EdmUtil_BatchRefVars);
//some code
}
编辑 1: 错误信息:
System.InvalidCastException H结果=0x80004002 Messaggio=Cast specificato 无效
【问题讨论】:
-
不,不是来自您提供的代码。我们不知道您在那里使用的是什么库以及正确的类型是什么。检查
CreateUtility的声明以查看它返回的类型。或者使用调试器,如果类型取决于参数(看起来像)。 -
另请注意,最好在一个步骤中声明变量并将其初始化为有用的值:
IEdmBatchRefVars batch = (IEdmBatchRefVars)edmVault11.CreateUtility(EdmUtility.EdmUtil_BatchRefVars);。将其初始化为default(IEdmBatchRefVars)然后立即为其分配新值是没有意义的。 -
@PMF ,这是 Solidworks ePDM API 示例可以参考这里help.solidworks.com/2017/English/api/epdmapi/…
-
您的保管库可能为空,但您的代码还有其他我们看不到的问题。
标签: c# solidworksapi solidworkspdmapi