2011-09-29 102 views
0

由于备份原因(有点像来自Metavis的filemanager),我正在构建Sharepoint 2010导出工具。获取listItem.fieldValues的列表客户端对象模型Sharepoint 2010

将文件下载到本地磁盘时,我需要备份与文档关联的元数据。我将存储在一个CSV文件中。我的第一种方法是迭代所有listItem.fieldvalues,但这并不真正有效,因为某些字段值是复杂的类型,这会不必要地使备份文件复杂化。有些值甚至包含行结尾,例如“MetaInfo”。此外,在可能需要时,并非所有值都需要恢复内容。

所以我的想法是只获得Fieldvalues集合中需要做的功能恢复的值,并补充所有用户添加的元数据。

为此,我想检查排除列表中的所有字段值以查看它是否存在。如果存在,请不要备份。如果它是用户生成的元数据或我需要的值,例如“author”,“created”。

所以我的问题是,有人知道所有fieldvalues键的列表? 还是有更好的方法来解决我的问题?

感谢

更新:嗯,因为我是通过FieldValues收集任何方式进行迭代。将所有值转储到CSV很容易。运行一次就足以获得所有的值。现在我需要写的是一个用于配置的xml文件。这留下了一个问题:有没有更好的方法来做到这一点?

回答

0

我已经完成申请。正如我在更新中所写的,我通过将所有fieldValues导出到CSV文件来制作一个列表。之后,我制作了一个带有布尔型“备份”的配置文件。这使得可以控制进行备份时要使用哪些值。

我回想起我认为不需要配置文件。备份时使用的值是整个程序的一部分,配置文件为管理员或未来的开发人员提供了一种简单的重新配置将满足需求的印象。

我现在可以看到,如果程序需要改变,由于新的要求,代码必须改变。所以即使将值设置为'True'也会改变输出。其他一些代码也必须写入。如果我再次写它,我可能会使用常量。这使得它不那么充满活力,但仍能满足该计划的需求。

(顺便说一句,关于标准fieldValues的所有名字的列表本来是很好的开始,我会在这里发布它,但我无法再访问该文件,因为我最近更换了作业。)

1

通过使用System编写以下代码 来过滤列表字段; using Microsoft.SharePoint.Client;

clientContext.Load(
     listItems, 
     items => items 
      .Include(
       item => item["Title"], 
       item => item["Category"], 
       item => item["Estimate"])); 

来源:http://msdn.microsoft.com/en-us/library/ee857094.aspx#SP2010ClientOM_Creating_Windows_Console_Application

您可以创建与各个领域的看法,使用SharePoint对象模型得到的观点,并从收集得到的列名,并将其过滤按您的要求。

+0

我确实使用了客户端对象模型。据我可以从你的代码片段判断,仍然需要一些配置;当用字符串检索项目时,必须以某种方式知道该字符串。这让我们回到了开始。如何知道所有的价值? – Sigur

相关问题