Вам нужно будет предоставить эти 2 свойства для типа и использовать атрибут [XmlText]
, чтобы указать, что он не должен генерировать дополнительный элемент:
using System;
using System.Xml.Serialization;
public class Comment
{
[XmlAttribute]
public string Name { get; set; }
[XmlText]
public string Value { get; set; }
}
public class Customer
{
public int Id { get; set; }
public Comment Comment { get; set; }
}
static class Program
{
static void Main()
{
Customer cust = new Customer { Id = 1234,
Comment = new Comment { Name = "abc", Value = "def"}};
new XmlSerializer(cust.GetType()).Serialize(
Console.Out, cust);
}
}
Если вы хотите свести эти свойства с самим объектом (экземпляр Customer
в моем примере), вам понадобится дополнительный код, чтобы заставить объектную модель притворяться, что она соответствует требованиям XmlSerializer
, или полностью отдельную модель DTO. .