我有一个由第三方应用程序使用的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是根元素,其他类实现了它,那些类实现了从中访问关系的接口。
那么我是否需要获取需要从中找到关系并将其封送的特定接口?请提出解决方案。