我有两个项目。 .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;
}
答案 0 :(得分:1)
感谢所有想到这一点的人。几乎决定我现在不能再浪费时间了。由于COM的相互作用,我几乎只限于Windows,所以我决定回到使用.net 4.6.2框架