немного короче: -)
var yourList = new List<int>() { 1, 2, 3 };
using (var writer = new StringWriter())
{
new XmlSerializer(yourList.GetType()).Serialize(writer, yourList);
var xmlEncodedList = writer.GetStringBuilder().ToString();
}
Хотя в этом предыдущем подходе есть недостаток, на который стоит обратить внимание. Он будет генерировать заголовок utf-16
, так как мы используем StringWriter , поэтому он не совсем эквивалентен вашему коду. Чтобы получить заголовок utf-8
, мы должны использовать MemoryStream и XmlWriter , что является дополнительной строкой кода:
var yourList = new List<int>() { 1, 2, 3 };
using (var stream = new MemoryStream())
{
using (var writer = XmlWriter.Create(stream))
{
new XmlSerializer(yourList.GetType()).Serialize(writer, yourList);
var xmlEncodedList = Encoding.UTF8.GetString(stream.ToArray());
}
}