Я пытаюсь создать новый XDocument следующим образом:Как получить независимую копию XDocument?
var xmlString = _documentDictionary[documentKey].ToString(SaveOptions.DisableFormatting);
XDocument xml = XDocument.Parse(xmlString);
теперь у меня есть xml
, которые я бы, хотя был самостоятельным экземпляром документа, потому что я извлек строку из исходного документа и создал новый из этого.
Но когда я изменяю xml
, а затем проверяю _documentDictionary[documentKey]
, я могу видеть, что исходный документ был изменен также.
Как я могу получить новый независимый документ из существующей коллекции, которую у меня есть?
Примечание:
Я пробовал это, но он не работает:
var xmlString = _documentDictionary[documentKey].ToString(SaveOptions.DisableFormatting);
var copyDoc = new XDocument(xmlString);
и
var copyDoc = new XDocument(_documentDictionary[documentKey]);
Я пробовал это, но он, похоже, не работает. Я сделаю еще один выстрел. – DaveDev
+1 не знал об этом –
Есть что-то странное. Я просто пробовал ваш тест, и он работает, но когда я пытаюсь использовать его на своих объектах, он терпит неудачу.Я создаю новый документ и изменяю его, изменяя имя корня, как вы описали, и я вижу, что он обновляется в оригинале. – DaveDev