В настоящее время я работаю над проектом 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);
}
}
Пока все работает отлично.Но теперь мне нужно сохранить «пустое» свойство, где property.ValueToPersist
равно " "
(ровно два пробела).Я прикрепил отладчик к циклу foreach, и имя / значение свойства, которое я хочу сохранить, на данный момент верны, но когда я просматриваю разметку документа, свойство появляется, но без значения:
<property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="17" name="propertyName">
<vt:lpwstr/>
</property>
И, конечно, если я снова открою документ и прочту эти свойства, указанное свойство не имеет значения.Есть ли способ сохранить пробелы при добавлении свойств?Или есть другой способ обойти это?Поскольку я не имею никакого контроля над тем, что в действительности делает .Add
.
Любая помощь будет принята с благодарностью!
BR