2017-09-05 122 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