2017-09-05 124 views
1

我有兩個項目。 .net核心Web項目和.net 4.6.2類庫。我的類庫通過com從外部軟件包中包裝了所需的功能。C#動態COM系統.__ ComObject

我處理COM類型,我已經加入到類庫引用,以便我可以定義強類型的情況下,能正常工作。
我的問題開始的地方是這個com庫的某些屬性和方法也返回一個System .__ ComObject。 這些返回的對象是我使用Dynamic聲明的,所以如果我的閱讀是正確的,這意味着運行時綁定用於訪問屬性和方法。

但是,從我的網頁API調用我的類庫的時候,我得到的錯誤告訴我,屬性/方法不上System._ComObject存在。 我可以運行確切的一些調用我的類庫形式.NET 4.6.2桌面應用程序沒有問題。

我在做什麼錯是從能夠做到的運行時間從.NET核心項目調用時結合停止我的類庫?

.NetCore簡單的腳手架了控制器

// GET: api/Job 
    [HttpGet] 
    public IActionResult Get() 
    { 
     try 
     { 
      //Call to static method Class Library 
      return new ObjectResult(Job.GetJobList(); 
     } 
      catch (Exception ex) 
     { 
      return BadRequest(ex); 
     } 
    } 

淨4.6.2類

public static List<Job> GetJobList() 
    { 
     List<Job> retVal = new List<Job>(); 
     //Create Accounts instance - external software package 
     Accounts accounts = new Accounts() 
     accounts.Login(); 

     dynamic accountsSettings = accounts.GetSettings(); 
     //accountSettings Type = System.__ComObject 

     String systemPath = accountsSettings.SystemPath; 
     //Exception here: System.__ComObject does not contain definition for 'SystemPath' 

     //Other code here to build list of jobs 
     return retVal; 
    } 
+0

你試過打電話給你的圖書館,具有Web應用程序(而不是桌面應用程序).net 4.6.2(不是.net核心)?你還檢查了應用程序的位數(x86 vs x64)嗎?否則你可以發佈一些複製代碼 –

+0

Ta作爲回覆@Simon Mourier,檢查了一下bitness。一切排隊。已經用.net 4.6.2 web應用程序進行過測試。根據桌面應用程序正常工作。 – Hursey

回答

1

感謝所有想到這個問題。幾乎認定我現在不能再浪費時間了。因爲我幾乎因爲COM交互限制到Windows反正,我決定只搬回使用.NET框架4.6.2