Я работаю над проектом, в котором объект анализируется как XmlDocument и отправляется в службу.Кажется, все работает правильно.Однако существует проблема с пустыми параметрами.
Когда параметр заполняется пустой строкой ("" или string.Empty), анализируется следующий XmlElement:
<parameterName></parameterName>
Мне нужноэто нужно проанализировать так:
<parameterName />
Мне сказали, что это всегда работало так, пока мы не перенесли этот проект из .NET 1.1 в .NET 2.0.Я думал, что было бы логично, чтобы пустой элемент был разобран как <parameterName/>
.Но, похоже, это не так.
Код, используемый для анализа параметра в XML, выглядит следующим образом:
public override XmlNode GetXml(XmlNode parentNode)
{
if (!Assigned) return null;
XmlElement node = parentNode.OwnerDocument.CreateElement(Name);
parentNode.AppendChild(node);
node.InnerText = Value.ToString();
return node;
}
Это не кажется странным, просто создавая элемент спустое значение.Все параметры этого объекта анализируются этим методом и помещаются в большой XmlDocument.При проверке XmlDocument.OuterXml я вижу, что элементы анализируются «неправильно».
Есть ли простой способ изменить это поведение.При поиске в истории кода в TFS я не вижу каких-либо существенных изменений в коде, которые привели бы к этому неправильному анализу.Единственное существенное изменение, которое было сделано, - это изменение версии платформы .NET (с 1.1 на 2.0) и изменение проекта с веб-сервиса .NET 1.1 на библиотеку классов .NET 2.0.