У меня есть методы, которые читают и записывают сериализованный объект в CustomXMLPart документа PowerPoint. В настоящее время, если я внесу изменения в объект и запишу его обратно в XMLPart, он создаст новый XMLPart. Есть ли способ перезаписать существующий XMLPart? Или я должен удалить существующий, а затем добавить новый?
Метод чтения:
private void Application_AfterPresentationOpen(PowerPoint.Presentation presentation)
{
Office.CustomXMLParts settingsXmlParts = presentation.CustomXMLParts.SelectByNamespace("Document.Settings");
if (settingsXmlParts.Count <= 0)
{
return;
}
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Settings));
using StringReader streamReader = new StringReader(settingsXmlParts[1].XML);
_ = (Settings)xmlSerializer.Deserialize(streamReader);
}
Метод записи:
private void Application_PresentationBeforeSave(PowerPoint.Presentation presentation, ref bool cancel)
{
if (!ResultsAreLoaded)
{
return;
}
Settings settings = new Settings();
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Settings));
using StringWriter stringWriter = new StringWriter();
xmlSerializer.Serialize(stringWriter, settings);
_ = presentation.CustomXMLParts.Add(stringWriter.ToString(), missing);
}