在实现遍历工作空间下所有数据集以及数据类中遇到的错误,出错代码:
pDataset = pEnumDataset.Next();
if (pDataset != null)
{
....
Marshal.ReleaseComObject(pDataset);
pDataset = pEnumDataset.Next();
}
解决方法:删除掉Marshal语句
总结:
RCW是一个.NET和COM之间的桥梁,上述错误就是在于COM那一段的陆地消失了,你再想走着这桥,系统就报错了,
这种问题多半是COM对象被意外销毁或者没有抛出异常就崩溃导致。
解决问题是:肯定是系统对象在运行时某个地方,局部销毁了,在传入时,可用引用对象ref,out