Mega Code Archive

 
Categories / Visual C++ .NET / File Directory
 

Mark class as Serializable

#include "stdafx.h" using namespace System; using namespace System::IO; using namespace System::Runtime::Serialization::Formatters::Binary; [Serializable] ref class RoleAttr{ public:     property int Wisdom;     RoleAttr(int Wis);     void Print(); }; RoleAttr::RoleAttr(int Wis) {     this->Wisdom       = Wis; } void RoleAttr::Print() {     Console::WriteLine("Wis: {1}", Wisdom); } [Serializable] ref class Role{ public:     property String ^Name;     property String ^Race;     property String ^Class;     property RoleAttr ^pattr;     Role (String ^Name, String ^Race, String ^Class,int Wis);     void Print(); }; Role::Role (String ^Name, String ^Race, String ^Class,int Wis) {     this->Name  = Name;     this->Race  = Race;     this->Class = Class;     this->pattr = gcnew RoleAttr(Wis); } void Role::Print() {     Console::WriteLine("Name:  {0}", Name);     Console::WriteLine("Race:  {0}", Race);     Console::WriteLine("Class: {0}", Class);     pattr->Print(); } void main() {     Role ^r = gcnew Role("r", "Human", "Thief", 11);     r->Print();     FileStream ^plStream = File::Create("Role.dat");     BinaryFormatter ^bf = gcnew BinaryFormatter();     bf->Serialize(plStream, r);     plStream->Close();     plStream = File::OpenRead("Role.dat");     Role ^rClone = (Role^)bf->Deserialize(plStream);     plStream->Close();     rClone->Print(); }