无法将COM对象转换为接口类型

时间:2019-03-05 05:51:12

标签: c# asynchronous com

我有一个由第三方应用程序使用的DLL。我正在尝试将长时间运行的任务作为异步运行,由于错误而失败:-

  

“无法将类型'System .__ ComObject'的COM对象转换为接口类型'IMSRelation.IJAssocRelation'。此操作失败,因为对具有IID'{609567C0-4ED3-11D1-B2B9的接口的COM组件上的QueryInterface调用-080036024603}'由于以下错误而失败:不支持此类接口(HRESULT的异常:0x80004002(E_NOINTERFACE))。“

失败的代码是:-

businessObject.Relationships

其中businessObject属于BusinessObject类型,其代码为

public class BusinessObject
{

    protected internal BusinessObject();

    protected internal BusinessObject(PrivateBusinessObject oBOP);

    public ReadOnlyCollection<RelationCollection> Relationships { get; }
}

注意:-如果我不在其他进程(异步/等待或新线程中)中使用它,此方法就很好。 我到目前为止所看到的是,在.NET Framework中使用COM组件之前,需要对这些组件进行封送处理。

所以任何人都可以建议如何编组,因为BusinessObject类没有实现任何接口[根据我的理解,只有接口可以被编组,如果我错了,请纠正我]。

现在,很明显,BusinessObject是根元素,其他类实现了它,那些类实现了从中访问关系的接口。

那么我是否需要获取需要从中找到关系并将其封送的特定接口?请提出解决方案。

0 个答案:

没有答案