Я десериализирую некоторый XML из старого приложения в объект в моем текущем приложении.Старый XML часто содержит пустые элементы (<SomeElement />
), которые в настоящее время десериализуются как пустые строки (""
).
Я согласен, что это наиболее подходящее поведение, но это незначительный раздражитель;Я бы предпочел, чтобы они были десериализованы как Nothing
или в идеале игнорировались - эффект был бы таким же.
Есть ли способы игнорировать эти элементы?Или я могу сделать их десериализованными как Nothing
?
ВЫВОД: Оба перечисленных решения имеют свои достоинства ...
Решение Аарона было бы идеальным, если бы я только что имелодно свойство проблемы - это одно исправление для одной проблемы.
Если существует несколько проблемных свойств, решение svick является предпочтительным.Реализация ISerializable включает в себя создание конструктора и метода GetObjectData с определенной обработкой для каждого свойства.
Мое решение: поскольку моя проблема связана только с некоторыми устаревшими файлами XML (которые со временем исчезнут), и поскольку String.IsNullOrEmpty включаетчтобы я проигнорировал проблему, я решил ничего не делать.Я не хочу дополнительных затрат на поддержание интерфейса ISerializable, если в этом нет необходимости, но во многих случаях это было бы хорошим решением, так что это мой выбранный ответ.