在玩弄了这个之后,这是我的最终代码,以防它帮助其他人,我发现这种格式更容易理解和使用。这一切都基于 Christian 引用的文章:
using Office = Microsoft.Office.Core;
using Word = Microsoft.Office.Interop.Word;
using System.Reflection;
Office.DocumentProperties properties = (Office.DocumentProperties)Globals.ThisDocument.CustomDocumentProperties;
//Check if the property exists already
if (properties.Cast<Office.DocumentProperty>().Where(c => c.Name == "nameofproperty").Count() == 0)
{
//Then add the property and value
properties.Add("nameofproperty", false, Office.MsoDocProperties.msoPropertyTypeString, "yourvalue");
}
else
{
//else just update the value
properties["nameofproperty"].Value = "yourvalue";
}
在检索值方面,就像在顶部使用相同的三行来获取属性对象一样简单,也许使用 if 语句中的代码来检查它是否存在,然后使用检索它properties["nameofproperty"].Value