Как определить имя корневого узла когда XmlSerializing массив?

Учитывая, что реализация, да, их будут всегда называть в том порядке.

, Если событие на самом деле использует некоторый странный и замечательный способ обработать подписки, это могло бы сделать разные вещи - но "нормальные" реализации сделают правильную вещь.

, Чтобы быть ясным, подписываясь на обработчик событий просто означает вызывать соответствующее, "добавляет" часть события. Если событие обрабатывает это путем выполнения чего-то как:

myHandler += value;

, который переводится в

myHandler = Delegate.Combine(myHandler, value);

и Делегат. Объединение гарантии упорядочивание. Однако, если у Вас было событие как это:

private LinkedList eventHandlers = new LinkedList;

public event EventHandler Foo
{
    add
    {
        eventHandlers.AddFirst(value);
    }
    remove
    {
        // do stuff here too
    }
}

и затем запущенный событие путем выполнения чего-то как:

foreach (EventHandler handler in eventHandlers)
{
    handler(this, EventArgs.Empty);
}

затем обработчики назвали бы в обратном порядке.

Сводка : Для всех нормальных событий можно полагаться на упорядочивание. В теории события могут сделать то, что они любят, но я никогда не видел событие, которое не делает , поддерживают соответствующее упорядочивание.

18
задан alexandrul 23 November 2009 в 07:12
поделиться

3 ответа

Попробуйте следующее:

XmlSerializer ser = new XmlSerializer(
    typeof(ListItem[]), 
    new XmlRootAttribute("CustomRootName"));
28
ответ дан 30 November 2019 в 07:55
поделиться

Используйте атрибут XmlRoot .

3
ответ дан 30 November 2019 в 07:55
поделиться

Я тоже нашел решение.

Можно указать имя корня node при создании экземпляра XmlSerializer. См. Ниже.

XmlSerializer ser = new XmlSerializer(typeof(ListItem[]), new XmlRootAttribute("AllPlaces"));
0
ответ дан 30 November 2019 в 07:55
поделиться
Другие вопросы по тегам:

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