Действительно ли там что-то подобно преобразованию в последовательную форму ЯВЫ/.NET для C ++?
Написать следующий метод в классе приложений Global.Asax
protected void Application_BeginRequest(Object sender, EventArgs e)
{
HttpContext.Current.User = HttpContext.Session["CurrentUser"];
}
или вы можете использовать свойство «Пользователь» System.Web.mvc.Controller, который унаследован для ваших контроллеров (Примечание: Обязательно позвоните в Formatauthentication.SetauthCookie методом при успешном подтверждении входа пользователя).
-121--3853866-Boost содержит библиотеку сериализации . Я не использовал его сам, но обычно обычно работают библиотеки повышения.
К сожалению, нет автоматического сериализации объектов в C ++. То есть потому, что любой механизм сериализации должен иметь возможность «понять» ваш пользовательский объект во время выполнения, а C ++ не содержит необходимую информацию для этого. Java и .NET на другой стороне есть, что называется, отражение. Этот механизм позволяет всем просматривать структуру данных любого произвольного объекта во время выполнения.
Все это не означает, что нет возможности сериализовать объект C ++ с относительно небольшим усилием. Возьмите, например, стандартную библиотеку потоков C ++. Написав
int x = 2010;
cout << x << endl;
вы фактически сериализуете объект типа Int. Можно продлить этот механизм для поддержки вашего пользовательского класса. Это делается просто путем перегрузки оператора <<. Это не так хоросно, как Java сериализация, но это тоже очень удобно.
Есть также некоторые библиотеки, которые делают его еще проще. Как кто-то уже упоминал, Boost Buillization Bibreation делает хорошую работу. Работа с повышением сериализации выглядит очень похоже на работу с ioStream, но решает некоторые проблемы, присущие стандартным потокам.
Boost.Serialization - очень хорошая библиотека, она также поддерживает базовую версию - то, что никогда не бывает полностью возможным при автоматической сериализации. Поскольку мне понадобилась еще лучшая версия, я на самом деле написал свою собственную библиотеку сериализации, которая следует стилю Boost.Serialization (потому что автор Boost.Serialization не был заинтересован в ее улучшении).
Обратите внимание, что вы также можете злоупотреблять функциями сериализации для других целей, таких как GUI или генерация веб-форм, если добавлено немного справочных данных (смотрите, как Boost.Serialization делает XML).
Следует отметить, что популярный метод сохранения целых структур (путем приведения их к char* и записи sizeof(struct) байт) является совершенно непредсказуемым, он не поддерживает версионирование и ломается, если структура содержит какие-либо указатели или объекты C++ (не-POD).
Буфет протокола протокола Google обеспечивает реализацию C ++ в основном пакете; В качестве хорошей выгоды вы можете поделиться этими данными с множеством других языков - но вы будете ограничены использованием типов , а не ваши собственные (какие двигатели сериализации в других Языки Поддержка).
На самом деле это не проблема, как (при необходимости) вы можете просто относиться к сгенерированным типам в качестве DTO, что Twin к вашему актуальному объектам домена.