Potrzebuję serializować IEnumerable. W tym samym czasie chcę, aby węzeł główny był "Kanały", a węzeł drugiego poziomu - Kanał (zamiast KanałuKonfiguracyjnego).Zastąp nazwę klasy dla XmlSerialization
Oto moja definicja serializer:
_xmlSerializer = new XmlSerializer(typeof(List<ChannelConfiguration>), new XmlRootAttribute("Channels"));
Mam nadpisane węzeł główny dostarczając XmlRootAttribute ale nie znalazłem opcję, aby ustawić kanał zamiast ChannelConfiguration jako węzła drugiego poziomu.
Wiem, że mogę to zrobić, wprowadzając otoki dla IEnumerable i przy użyciu XmlArrayItem, ale nie chcę tego robić.
dlaczego nie chcesz zrobić łatwą opcję? z ciekawości? (zauważ także: używanie nietrywialnych konstruktorów oznacza, że ** musisz ** buforować serializer, inaczej przeciekasz złożenia, podstawowy konstruktor 'XmlSerializer (Type)' nie cierpi tego) –
Jesteś właścicielem klasy ChannelConfiguration, są jesteś w stanie udekorować go atrybutami? Jeśli tak, prawdopodobnie mam rozwiązanie. –
@MarcGravell, może masz rację i powinienem użyć wrappera – SiberianGuy