Я представляю себе, чтобы использовать XML-сериализации, как это:Почему XmlSerializer так трудно использовать?
class Foo {
public Foo (string name) {
Name1 = name;
Name2 = name;
}
[XmlInclude]
public string Name1 { get; private set; }
[XmlInclude]
private string Name2;
}
StreamWriter wr = new StreamWriter("path.xml");
new XmlSerializer<Foo>().Serialize (wr, new Foo ("me"));
Edit: Я знаю, что этот код является неправильным. Это было просто показать, как я хотел бы использовать его.
Но это не работает вообще:
- XmlSerializer не является универсальным. Я должен отбрасывать и помечать сериализацию (de).
- Каждое имущество должно быть полностью публичным. Почему мы не используем Reflection для доступа к частным сеттерам?
- Закрытые поля не могут быть сериализованы. Я хотел бы украсить частные поля атрибутом, чтобы включить XmlSerializer.
Я пропустил что-то, и XmlSerializer действительно предлагает описанные возможности? Существуют ли альтернативные сериализаторы для XML, которые обрабатывают эти случаи более изощренно?
Если нет: мы в 2010 году, и .NET существует уже много лет. Сериализация XML часто используется, полностью стандартная и должна быть действительно простой в использовании. Или мое понимание, возможно, неверно, и сериализация XML не должна раскрывать описанные функции по уважительной причине?
Редактировать: Наследие не является хорошей причиной для ИМО. List
был слишком нежен первым.
(.. Вы можете настроить подпись или теги Если это должно быть CW, пожалуйста, просто оставить записку)
По той же причине, что рыть яму баскетболом так сложно. ;-) –
Нельзя сказать, что «« Список »был сначала нерожденным». «List» был введен в 2.0 и тогда был общим классом. Более старый ненормальный 'ArrayList' является * другим * классом, который * все еще существует *. – AakashM
Ooops. Ошибка с моей стороны. Я извиняюсь :) – mafu