Показать сообщение отдельно
Старый 27.05.2010, 16:56
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 10  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
это ничего не меняет (почти ничего)
серверному программисту надо правильным образом указать [XmlAttribute] в этом "одном-на-все-случаи-жизни" классе и все.

Получите все пропертис не в виде нодов, а в виде атрибутов. Одним из атрибутов, очевидно, будет тип объекта, чтобы было понятно, что с этим всем делать.

Там в примере все написано:

Код:
public class DataClass
{
    public DataClass(){}
    public string ID = Guid.NewGuid().ToString();
    public string Name = "Just Name";
    public Decimal Count = 10;
    public DateTime Date = DateTime.Now;
}
дает

Код:
<?xml version="1.0" encoding="utf-8"?>
<DataClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ID>34332413-e70f-44f7-b35c-b34c47812dbc</ID>
  <Name>Just Name</Name>
  <Count>10</Count>
  <Date>2006-10-30T12:35:20.3110319+03:00</Date>
</DataClass>
а всего навсего указание [XmlAttribute]:

Код:
[XmlRoot("Data")] // изменим имя корневого элемента
    public class DataClass
    {
           public DataClass(){}

           [XmlAttribute] // сериализуем в xml атрибут 
           public string ID = Guid.NewGuid().ToString();

           [XmlAttribute] // сериализуем в xml атрибут 
           public string Name = "Just Name";

           [XmlElement("Reserved")] // изменим имя xml элемента
           public Decimal Count = 10;

           [XmlIgnore] // не будет сериализоваться
           public DateTime Date = DateTime.Now;
    }
кардинально меняет картину:

Код:
<?xml version="1.0" encoding="utf-8"?>
<Data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="cc340d5e-4c80-4fe5-9c3d-e49f64e26b22" Name="Just Name">
  <Reserved>10</Reserved>
</Data>


Последний раз редактировалось mikhailk; 27.05.2010 в 16:58.