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