Я не уверен, почему не работает XML-сериализатор. Пространство имен правильное, поскольку объект XmlNode assemblyBinding не является нулевым, а указанный код - то, что я делаю, и ничего более. Это может произойти из-за метода GetElement, который создает XmlNode из строки и возвращает новый элемент документа.
private static XmlElement GetElement(string xml)
{
//convert string to xml element
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
return doc.DocumentElement;
}
В любом случае я достиг результата с помощью XPathNavigator. Моя окончательная версия.
XmlNamespaceManager manager = new XmlNamespaceManager (WebConfigDoc.NameTable);
manager.AddNamespace("bindings", "urn:schemas-microsoft-com:asm.v1");
XmlNode root = WebConfigDoc.DocumentElement;
XPathNavigator assemblyBinding = root.CreateNavigator().
SelectSingleNode("//bindings:assemblyBinding", manager);
assemblyBinding.AppendChild(MyNewNode());
private string MyNewNode()
{
string Node = "<dependentAssembly>" +
"<assemblyIdentity name=\"newone\" "+
" publicKeyToken=\"608967\" />" +
"<bindingRedirect oldVersion=\"1\" newwVersion=\"2\" />" +
"</dependentAssembly>";
return Node ;
}
Спасибо за помощь.