Как я могу контролировать сериализацию при использовании состояния сеанса SQL Server в приложении ASP.NET? - PullRequest
2 голосов
/ 23 декабря 2011

У меня есть приложение ASP.NET, в котором я использую состояние сеанса SQL.

Мое приложение получает данные от веб-службы RESTful, вывод которой - JSON. Эти данные сериализуются на стороне веб-службы и десериализируются на стороне моего веб-сайта с использованием объекта DataContractJSONSerializer. Сериализуемые объекты являются простыми объектами .NET POCO. У них нет атрибута [Serializable]. DataContractJSONSerializer по умолчанию просто сериализует и десериализует свойства, что мне подходит.

Один из этих объектов, которые я получаю от своего сервиса, я хотел бы сохранить в своем состоянии сеанса (т. Е. SQL). Это требует, чтобы объект был сериализуемым. Проблема заключается в том, что, если я добавлю атрибут Serializable в мои объекты POCO, изменения сериализации JSON и все поля (включая частные поля) будут сериализованы и возвращены из веб-службы, что нарушит десериализацию с моей стороны.

Мне интересно, есть ли способ контролировать способ сериализации объектов ASP.NET при использовании состояния сеанса SQL? Если бы я мог как-то сериализовать объекты здесь снова, используя DataContractJSONSerializer, это было бы здорово. Или другой метод, где я мог бы контролировать сериализацию.

Я знаю, что мог бы реализовать ISerializable и управлять тем, как мои объекты сериализуются, и это решило бы мою проблему, но я стараюсь избегать реализации этого на каждом объекте, который я хочу сериализовать.

1 Ответ

0 голосов
/ 24 декабря 2011

Как насчет добавления сериализуемого класса-оболочки, который содержит строковое свойство для хранения версии объекта DataContractJSONSerializer, а затем сериализовать это.

Класс-оболочка может содержать универсальные методы для сериализации и десериализации объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...