簡體   English   中英

投射對對象無效

[英]Cast is invalid on object

我有這個問題,當我嘗試投射“批處理”對象時,我引發了異常“無效的投射”。 你能幫我看看為什么嗎? 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 HResult=0x80004002 Messaggio=Cast 規范無效

我今天遇到了這個。 解決方案是在 STA 模式下為當前線程初始化 COM。

  • 對於 WinForms 應用程序,這已經為主/UI 線程完成(因此可能不適用)。
  • 對於控制台應用程序,請考慮將 [STAThread] 添加到 Main() 方法。
  • 如果您在后台線程或任務上運行它,則需要直接操作線程狀態。

我建議你也試試這個改變

 public void batch(IEdmVault5 vault5)
{
    IEdmVault7 edmValult11 = null;
    if (vault5 == null)
    {
           vault5 = new EdmVault5();
    }
    edmVault11 = (IEdmVault11)vault5;
    IEdmBatchRefVars batch = default(IEdmBatchRefVars);
    batch = (IEdmBatchRefVars)edmVault11.CreateUtility(EdmUtility.EdmUtil_BatchRefVars);

    //some code
}

除了考慮到 Solidworks API 的性質外,請確保安裝和許可證有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM