В потоке Что ваш любимый "незнакомец программиста" заглядывает?, появляется следующий ответ с большим количеством upvotes:
Programmers who build XML using string concatenation.
Мой вопрос: зачем строить XML с помощью конкатенации строк (например, StringBuilder
на С#)?
Я делал это несколько раз в прошлом, так как иногда это самый быстрый способ добраться от точки A до точки B, когда приходите к структурам данных/объектам, с которыми я работаю. До сих пор я придумал несколько причин, почему это не самый лучший подход, но есть ли что-то, что я пропускаю? Почему этого следует избегать?
- Вероятно, самая большая причина, по которой я могу думать, - это избавиться от своих строк вручную, и большинство новых программистов (и даже некоторых опытных программистов) забудут об этом. Это будет отлично работать для них, когда они проведут проверку, но тогда "случайным образом" их приложения не удастся, когда кто-то выбросит символ и символ в их входе. Хорошо, я куплю это, но очень легко предотвратить проблему (SecurityElement.Escape, чтобы назвать ее).
- Когда я это делаю, я обычно опускаю объявление XML (т.е.
<?xml version="1.0"?>
). Это вредно? - Пункты исполнения? Если вы придерживаетесь правильной конкатенации строк (т.е.
StringBuilder
), это все, о чем нужно беспокоиться? Предположительно, класс, подобныйXmlWriter
, также должен будет немного обработать строки... - Есть более элегантные способы генерации XML, такие как использование
XmlSerializer
для автоматической сериализации/десериализации классов. Хорошо, согласен. У С# есть много полезных классов для этого, но иногда я не хочу создавать класс для чего-то действительно быстрого, например, записывать файл журнала или что-то в этом роде. Это только я ленив? Если я делаю что-то "реальное", это мой предпочтительный подход для работы с XML.