Я использую переносимую библиотеку классов в своем приложении asp.net, и при развертывании в Azure состояние сеанса необходимо сериализовать. Классы из этого PCL не имеют атрибутов SerializableAttribute, недоступных в подмножестве фреймворка. Могу ли я поместить эти классы в сеанс ASP.NET?
Как бинарно сериализовать класс в переносимой библиотеке классов?
Ответы (1)
Что ж, вы можете использовать один из доступных сторонних сериализаторов, которые доступны для переносимой библиотеки классов:
- protobuf-net — двоичный файл
- Json.NET
Оба доступны на NuGet.
person
Sebastian
schedule
20.02.2013
Это означает, что мне придется написать собственный поставщик состояний сеанса или как заставить поставщик состояний Azure использовать мой пользовательский сериализатор?
- person rboeije; 20.02.2013
Вы также можете сериализовать свой класс, преобразовать его в строку и вставить строку в сеанс. Другой вариант — написать собственный поставщик состояния сеанса, использующий ваш собственный сериализатор.
- person dna; 20.02.2013
@dna +1 для Json.NET. А что касается вашего комментария преобразовать его в строку и вставить строку в сеанс, я нашел следующую статью полезной с точки зрения куда поместить такую логику: Обходной путь Ваши проблемы с сериализацией сеансов ASP.Net. то есть сделать адаптацию в
Application_PostAcquireRequestState()
и Application_PostRequestHandlerExecute()
.
- person Chris W. Rea; 13.06.2014