Учитывая, что реализация, да, их будут всегда называть в том порядке.
, Если событие на самом деле использует некоторый странный и замечательный способ обработать подписки, это могло бы сделать разные вещи - но "нормальные" реализации сделают правильную вещь.
, Чтобы быть ясным, подписываясь на обработчик событий просто означает вызывать соответствующее, "добавляет" часть события. Если событие обрабатывает это путем выполнения чего-то как:
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);
}
затем обработчики назвали бы в обратном порядке.
Сводка : Для всех нормальных событий можно полагаться на упорядочивание. В теории события могут сделать то, что они любят, но я никогда не видел событие, которое не делает , поддерживают соответствующее упорядочивание.
Попробуйте следующее:
XmlSerializer ser = new XmlSerializer(
typeof(ListItem[]),
new XmlRootAttribute("CustomRootName"));
Я тоже нашел решение.
Можно указать имя корня node при создании экземпляра XmlSerializer. См. Ниже.
XmlSerializer ser = new XmlSerializer(typeof(ListItem[]), new XmlRootAttribute("AllPlaces"));