Возможно ли сопоставление элементов атрибута как члена? - PullRequest
0 голосов
/ 02 марта 2012

Кто-нибудь знает, есть ли возможность сопоставить атрибуты элементов родительским членам класса / структуры?

Пример:

<parent>
    <child id="1">
</parent>

Я бы хотел, чтобы он отображался прямо так:

public class parent
{
    public int id;
}

Заранее спасибо

Обновление: Я не указал это четко, я ищу решение на основе атрибутов решения, которое я мог бы использовать XmlSerializer.

1 Ответ

0 голосов
/ 02 марта 2012

Вам нужно будет реализовать собственный интерфейс IXmlSeriazliable.

http://msdn.microsoft.com/en-us/library/system.xml.serialization.ixmlserializable.aspx

Вот грубый пример:

    public class parent : IXmlSerializable
    {
        public int id { get; set; }

        public XmlSchema GetSchema()
        {
            throw new NotImplementedException();
        }

        public void ReadXml(XmlReader reader)
        {
            while (reader.Read())
            {
                if (reader.Name == "child")
                {
                    int parseValue;
                    int.TryParse(reader.Value, out parseValue);
                    this.id = parseValue;
                }
            }
        }

        public void WriteXml(XmlWriter writer)
        {
            writer.WriteStartElement("parent");
            writer.WriteStartElement("child");
            writer.WriteAttributeString("id", this.id.ToString());
            writer.WriteEndElement();
            writer.WriteEndElement();                
        }
    }

Это должно работатьс помощью XmlSerializer.

...