C# 保存并覆盖CustomXMLParts

C# 保存并覆盖CustomXMLParts,c#,vsto,powerpoint,C#,Vsto,Powerpoint,我有一些方法可以将序列化对象读写到PowerPoint文档的CustomXMLPart。 当前,如果我对对象进行更改并将其写回XMLPart,它将创建一个新的XMLPart。有没有办法覆盖现有的XMLPart?还是我必须删除现有的,然后添加新的 读取方法: private void Application_AfterPresentationOpen(PowerPoint.Presentation presentation) { Office.CustomXMLParts settings

我有一些方法可以将序列化对象读写到PowerPoint文档的CustomXMLPart。 当前,如果我对对象进行更改并将其写回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);
}

只需在添加新的之前删除现有的,不知道如何覆盖它,这就是我如何做的

Office.CustomXMLParts settingsXmlParts = presentation.CustomXMLParts.SelectByNamespace("Document.Settings");
foreach (var settingsXmlPart in settingsXmlParts)
     settingsXmlPart.Delete();

Office.CustomXMLParts settingsXmlParts = presentation.CustomXMLParts.SelectByNamespace("Document.Settings");
foreach (var settingsXmlPart in settingsXmlParts)
     settingsXmlPart.Delete();
Office.CustomXMLPart settingsXmlPart = presentation.CustomXMLParts.SelectByNamespace("Document.Settings").FirstOrDefault();
if (settingsXmlPart != null)
     settingsXmlPart.Delete();