private void WriteItemTo(string name, string ns, object value, XmlWriter writer, string xmlNamespace)
{
if (value == null)
{
writer.WriteStartElement(name, Namespace);
writer.WriteAttributeString("nil", Framework.Common.XSI.Namespace, XmlConvert.ToString(true));
writer.WriteEndElement();
}
else if (value is SDataPayload)
{
var child = (SDataPayload) value;
child.WriteTo(name, ns, writer, xmlNamespace);
}
else if (value is SDataPayloadCollection)
{
var children = (SDataPayloadCollection) value;
children.WriteTo(name, ns, writer, xmlNamespace);
}
else if (value is SDataSimpleCollection)
{
var children = (SDataSimpleCollection) value;
children.WriteTo(name, ns, writer);
}
else
{
writer.WriteElementString(name, Namespace, ValueToString(value));
}
}