Tôi cần serialize IEnumerable. Đồng thời tôi muốn nút gốc là "Kênh" và nút cấp thứ hai - Kênh (thay vì ChannelConfiguration).Ghi đè tên lớp cho XmlSerialization
Dưới đây là định nghĩa serializer tôi:
_xmlSerializer = new XmlSerializer(typeof(List<ChannelConfiguration>), new XmlRootAttribute("Channels"));
Tôi đã overriden nút gốc bằng cách cung cấp XmlRootAttribute nhưng tôi đã không tìm thấy một tùy chọn để thiết lập kênh thay vì ChannelConfiguration như nút tầng hai.
Tôi biết tôi có thể làm điều đó bằng cách giới thiệu trình bao bọc cho IEnumerable và sử dụng XmlArrayItem nhưng tôi không muốn làm điều đó.
tại sao bạn không muốn làm tùy chọn dễ dàng? hết tò mò? (cũng lưu ý: sử dụng các hàm tạo không tầm thường có nghĩa là bạn ** phải ** cache bộ nối tiếp, nếu không bạn bị rò rỉ các assembly; cơ bản 'XmlSerializer (Type)' constructor không bị ảnh hưởng này) –
Bạn có phải là chủ sở hữu của lớp ChannelConfiguration không, bạn có thể trang trí nó với các thuộc tính? Nếu có, tôi có thể là một giải pháp. –
@MarcGravell, có thể bạn là đúng và tôi nên sử dụng một wrapper – SiberianGuy