首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在c#中使用DFC获取文档内容

如何在c#中使用DFC获取文档内容
EN

Stack Overflow用户
提问于 2012-09-08 12:59:52
回答 2查看 7.6K关注 0票数 4

我有文档开发者版本6.6。我希望使用c#中的DFC获取文档内容(将内容读入流)。我使用了以下C#.net代码

代码语言:javascript
复制
IDfId id = collection.getId("r_object_id");
IDfDocument doc = (IDfDocument) session.getObject(id);

但它会抛出随后的异常。

异常:无法将'System.__ComObject‘类型的COM对象转换为接口类型'DFCLib.IDfDocument’。此操作失败,因为对IID‘{EFAC2D68-175 B-11D2-9927-006097C27C31}’的接口的COM组件的QueryInterface调用失败:不支持此类接口( HRESULT: 0x80004002 (E_NOINTERFACE)例外)。

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

代码语言:javascript
复制
IDfId id = collection.getId("r_object_id"); 
IDfSysObject sysObject = (IDfSysObject) session.getObject(id);
EN

回答 2

Stack Overflow用户

发布于 2012-09-18 14:43:06

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

代码语言:javascript
复制
IDfId id = collection.getId("r_object_id"); 
IDfSysObject sysObject = (IDfSysObject) session.getObject(id);

sysObject.getFile(<path>)

然后可以使用标准的.Net IO库以流的形式打开文件,例如:

代码语言:javascript
复制
var stream = new System.IO.StreamReader(<path>)

我相信DFC有一些基于流的公共方法(getContent?)但我还没有看到.Net成功地使用过它们。但是,我建议您看看DFS () API,而不是DFC。这是现在支持的API,DFC被废弃为一个公共API。DFS在处理存储库内容时确实有流选项。

如果这个答案不足以满足您的需要,您可能还需要检查http://developer.emc.com

票数 0
EN

Stack Overflow用户

发布于 2012-09-20 09:02:57

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

我猜你的目标不是文件。

对于非文档的sysobject来说,有一个内容是很奇怪的,但它仍然是允许的。然后,可以按照另一个答案中的建议用getFile读取内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12330910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档