using System.Collections.Generic;
using System.Xml.Serialization;
public static void Main()
var message = new MessageBody()
CheckList = new CustomArray<Check>
InvoiceList = new CustomArray<Invoice>
var settings = new XmlWriterSettings
OmitXmlDeclaration = true,
using (var sw = new StringWriter())
using (var writer = XmlWriter.Create(sw, settings))
var serializer = new XmlSerializer(message.GetType());
serializer.Serialize(writer, message, new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }));
Console.WriteLine(sw.ToString());
public class CustomArray<T> : List<T>
public string Type { get; set; }
[XmlArray("Checks"), XmlArrayItem("CheckItem")]
public CustomArray<Check> CheckList { get; set; }
[XmlElement("C_CHECK_NUMBER")]
public string CheckNumber { get; set; }
[XmlElement("C_CHECK_AMOUNT")]
public decimal Amount { get; set; }
[XmlArray("InvoiceList"), XmlArrayItem("Invoice")]
public CustomArray<Invoice> InvoiceList { get; set; }
[XmlElement("C_INVOICE_ID")]
public long ID { get; set; }
[XmlElement("C_INVOICE_NUM")]
public string InvoiceNum { get; set; }