XmlRoot () для Xml Serilization не работает

Выезд Элементы по сравнению с атрибутами Ned Batchelder.

Хорошее объяснение и хороший список преимуществ и недостатки Элементов и Атрибутов.

Он сводит его к:

Рекомендация: Используйте элементы для данных, которые будут произведены или использованы бизнес-приложением и атрибутами для метаданных.

Важный: см. комментарий @maryisdead ниже для дальнейшего разъяснения.

12
задан burnt1ce 17 September 2009 в 19:21
поделиться

3 ответа

[XmlRoot (...)] влияет только на самый внешний элемент ( ... ). Я подозреваю, что вам нужен [XmlElement (...)] . Конечно, другой способ - написать объект-оболочку:

[XmlRoot("SheduledShows")]
public class Shows {
    [XmlElement("SheduledShowElement")]
    public List<Show> Shows {get;set;}
}

И сериализовать этот объект-оболочку вместо простого списка.

10
ответ дан 2 December 2019 в 05:41
поделиться

Используйте DisplayNameAttribute , чтобы изменить отображаемый текст (сделать его более читабельным), DescriptionAttribute , чтобы добавить текст справки к свойству, и CategoryAttribute , чтобы сгруппировать свойства ..

1
ответ дан 2 December 2019 в 05:41
поделиться

Я нашел ответ на свой вопрос здесь:

http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/4b228734-a209-445a- 991c-0420b381ac93

Я только что использовал [XmlType ("")] , и это сработало.

using System;
using System.Xml.Serialization;


namespace CommunityServer.Scheduler
{

    [XmlType("ScheduledShowElement")]
    public class ScheduledShow
    {

      ...
    }
}
16
ответ дан 2 December 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: