【问题标题】:c# open exported DXL as NotesDocumentc# 打开导出的 DXL 作为 NotesDocument
【发布时间】:2015-07-06 12:08:24
【问题描述】:

有谁知道是否可以将 DXL (Domino XML) 作为 NotesDocument 对象打开?

安装 Notes 客户端后,您可以添加对“Interop.Domino”的引用并将 Domino 对象与 C# 一起使用。 事实上,我已经尝试了一些 DXLImporter 的东西,但没有运气...... 看来,DXLImporter 只能导入 NotesDatabases。

有没有办法将 DXL 导出文件 (NotesStream) 打开为 NotesDocument 以将内容作为 Notes 对象访问? (尤其是富文本)

有什么想法吗? 非常感谢。

// 硅片

【问题讨论】:

    标签: c# lotus-notes interop-domino


    【解决方案1】:

    NotesDocument- 对象永远不能独立存在。它总是需要一个父数据库。无论您如何获得 NotesDocument 对象,这都是正确的。 在您的特殊情况下,您需要一个用于将 XML 导入到的“哑”容器 nsf。导入后,您可以访问 NotesDocument。

    您需要使用其universalid 来查找文档。这个universalid可以在XML中作为“unid”找到——nodeinfo-node的属性:

    <document xmlns='http://www.lotus.com/dxl' version='9.0' maintenanceversion='1.4' 
      replicaid='C1257C270049C111' form='Offer'>
      <noteinfo noteid='188a6' unid='FE4CB54C2D7C9ABCC1257E620027FCE4' sequence='3'>
    

    正如 Stan 在 cmets 中所说,这可能会或可能不会起作用。如果具有该 UNID 的文档已经存在和/或相应地设置了导入选项,则导入的文档可以获得不同的 Universalid。 更好的用户 NotesDXLExporter.GetFirstImportedNoteID 来获取文档。

    您甚至可以从 xml- 结构中导入整个数据库,但这对于这样一个简单的任务来说可能开销很大,但当然这取决于您的需要。

    作为“hack”或“解决方法”,您可以将此文档导入数据库,该数据库始终存在于任何 Lotus Notes 客户端上,例如bookmark.nsf 或 names.nsf,但我不建议这样做。

    【讨论】:

    • 您应该能够使用 NoteDXLImporter 对象的 GetFirstImportedNoteID 方法后跟 GetDocumentByID 来获取文档。 UNID 在导入时可能不稳定 - 通常情况下是这样,但事情可能会发生。
    • 没有深入研究类。感谢您的建议。
    • @Torsten:事实上,这太耗时了。这就是我很快发现的...... ;)
    • 我们切换到直接连接到数据库,但我无法访问所有字段......(也许我为此发布了另一个问题)。谢谢你们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多