【发布时间】:2016-04-19 13:00:00
【问题描述】:
我一直在尝试从 Word 2010 应用程序级 C# VSTO 中读取 SharePoint 2013 网站列元数据。
为了进行测试,我为 SharePoint 使用的每种类型设置了网站栏,然后创建了一个与所有类型相关联的文档内容类型——因此所有这些栏都嵌入到 Word 文档中(看起来存储在 customXml 中在文档文件中)。
通过读取 VSTO 代码中的 _Document.ContentTypeProperties 属性,我可以访问大多数类型,但是我在访问“个人或组”站点列的数据时遇到了困难——我收到 COM 异常尝试读取或写入项目的.Value 属性。
通过查看 customXml 中的 XSD 架构,我可以看到一个单值用户列由三个值组成:DisplayName(类型为string)、AccountType(类型为string)和@987654327 @ (type UserId) -- 但是我看不到在 VSTO 中读取/写入这个的方法?多值用户列似乎完全不同,由两个 string 值组成:一个 ID(似乎是 SharePoint 用户的 ID)和一个基于字符串的 ID(或者至少我认为 @987654330 @ 是,无论如何)。
Word 本身可以通过文档面板编辑单值和多值用户列数据,但前提是 Word 当前已连接到 SharePoint,否则该功能将被禁用。我假设如果我可以访问这些值,VSTO 也是如此......
我的两个问题是:
有没有办法从 VSTO 代码中读取/写入单值和多值用户字段(即使不是通过
_Document.ContentTypeProperties属性)?如果未连接到 SharePoint(例如,如果代码已知这些值),是否有办法执行 Q1?
(我有点过于冗长了,以防我到目前为止的工作对其他人有用,即使我没有得到答案;似乎在任何地方都没有大量关于此的信息) em>
【问题讨论】:
标签: c# sharepoint ms-word vsto sharepoint-2013