c# - documentum-如何在C#中使用DFC获取文档内容

我使用documentum开发人员版6.6。我想在C#中使用DFC获取文档内容(将内容读入流中)。 我使用了以下C#.net代码


IDfId id = collection.getId("r_object_id");


IDfDocument doc = (IDfDocument) session.getObject(id);



但它引发以下异常。

Exception : Unable to cast com object of type'System.__ComObject'to interface type'DFCLib.IDfDocument'. this operation failed because the QueryInterface call on the com component for the interface with IID'{EFAC2D68-175B-11D2-9927-006097C27C31}'failed due to the following error : no such interface supported (Exception from HRESULT : 0x80004002 (E_NOINTERFACE)) .

我还尝试了以下方法(它运行成功),但不知道如何将内容读入流或内存流。


IDfId id = collection.getId("r_object_id"); 


IDfSysObject sysObject = (IDfSysObject) session.getObject(id);



时间:

这将把文件转储到本地文件系统路径:


IDfId id = collection.getId("r_object_id"); 


IDfSysObject sysObject = (IDfSysObject) session.getObject(id);



sysObject.getFile(<path>)



然后,你可以使用标准.Net IO库将文件作为流打开,例如:


var stream = new System.IO.StreamReader(<path>)



我相信DFC有一些基于流的公共方法(getContent),但是我还没有看到在Net谁成功使用,但是,我建议你看一下DFS (Documentum Foundation Services )API而不是DFC ,这是现在受支持的API,DFC公共API已经被弃用。DFS在处理存储库内容时有流选项。

如果这个答案不适合你的需求,你可以查看http://developer.emc.com 。

异常表示它不能将com对象转换为IDfDocument 。

我想你的目标不是一个文件。

...