VSTO 添加 "empty" DocumentProperty

VSTO add "empty" DocumentProperty

我目前正在为我的公司开发一个 VSTO 项目,为了帮助客户解决一些奇怪的问题,我需要保存两个空格 (" ") 作为 DocumentProperty 的值。 这是到目前为止我如何使用它的代码片段:

public void SavePropertiesToDocument(IEnumerable<ContentControl> contentControls)
{
    DocumentProperties documentProperties = Document.CustomDocumentProperties;

    var propertiesToPersist = GetPropertiesFromInMemoryManager()

    foreach (var property in propertiesToPersist)
    {
        documentProperties.Add(property.Name, false, MsoDocProperties.msoPropertyTypeString, property.ValueToPersist);
    }
}

目前为止一切正常。 但是现在我需要保存 "empty" 属性,其中 property.ValueToPersist" "(恰好两个空格)。 我在 foreach 循环中附加了调试器,此时我想保存的 属性 的 name/value 是正确的,但是当我查看文档的标记时 属性 是有但没有值:

<property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="17" name="propertyName">
    <vt:lpwstr/>
</property>

当然,如果我重新打开文档并阅读这些属性,则上述 属性 没有任何价值。 添加属性时有什么方法可以保留空格吗?或者还有其他解决方法吗? 因为我无法控制 .Add 的实际作用。

如有任何帮助,我们将不胜感激!

BR

对于任何想知道的人,当然不能将空格保存为 XML 值,它们会被删除。我们的解决方案是在保存它们时将它们包装在 { } 中,并在将它们读入我们的 InMemory 属性 管理器时将它们删除。