C#动态COM系统.__ ComObject

时间:2017-09-05 00:18:08

标签: c# dynamic com .net-core

我有两个项目。 .net核心Web项目和.net 4.6.2类库。我的类库通过com。

从外部软件包中包含所需的功能

我正在处理的com类型,我已经添加到类库引用中,因此我可以定义强类型实例,这样可以正常工作。
我的问题开始的地方是这个com库的某些属性和方法也返回一个System .__ ComObject。 我使用Dynamic声明了这些返回对象,所以如果我的读数正确,这意味着运行时绑定用于访问属性和方法。

但是,当从我的web api调用我的类库时,我收到错误,告诉我System._ComObject上不存在属性/方法。 我可以运行一些调用我的类库表单.net 4.6.2桌面应用程序没问题。

我做错了什么是阻止我的类库在从.net核心项目调用时能够执行运行时绑定?

.NetCore Simple Scaffolded up controller

    // 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);
        }
    }

.Net 4.6.2 Class

    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;
    }

1 个答案:

答案 0 :(得分:1)

感谢所有想到这一点的人。几乎决定我现在不能再浪费时间了。由于COM的相互作用,我几乎只限于Windows,所以我决定回到使用.net 4.6.2框架