Обычно ASP.NET обрабатывает данные профиля как пакет свойств - поэтому он, вероятно, пропустит свойство (которое было сохранено в хранилище данных), но удалено из конфигурации. Аналогично, для вновь добавленного свойства будет использоваться значение по умолчанию. Теперь тип свойств также будет иметь значение - если тип свойства является вашим пользовательским классом, то его сериализация будет обрабатываться либо XmlSerializer, либо BinaryFormatter. XmlSerializer является значением по умолчанию и обычно допускает сериализатор (пропущенные свойства будут пропущены и т. Д.). Вы можете использовать атрибуты для управления сериализацией XML. В случае BinaryFormatter, он аналогичен сериализации во время выполнения и, если вы хотите поддерживать управление версиями, лучше всего реализовать ISerializable и решать любые проблемы с версиями. Я не уверен, что произойдет в случае, если у вас есть свойство профиля некоторого типа A, а затем вы удаляете этот тип. Я предполагаю, что вы должны получить ошибку, но я не уверен в этом.
Обычно я предпочитаю свернуть собственную реализацию для поддержки функции профиля пользователя, потому что
- По моему вкусу можно управлять такими вещами, как управление версиями и т. Д.
- Выбор схемы хранения и хранения
может быть независимым (это возможно
в ASP.NET профили по индивидуальному заказу
профиль провайдера)
- Это может быть легко помещено в
многоуровневое приложение и данные профиля
также доступен для любого не-сети
клиенты при необходимости
- Хотя это означает переизобретать
руль и имея некоторые дополнительные усилия,
это стоит для любого программного обеспечения, которое имеет
Срок годности более 2-3 лет.
- Я могу точно контролировать, когда
сохранить / получить данные профиля из
хранилище данных.