, . # , , , unserializable .
, , , , , .
, . , , , object.
, .NET, , . , , . SerializeToText .
interface ICanSerialize
{
void Serialize(ISerializeMedium m);
}
interface ISerializeMedium
{
void Serialize(string name, ref int value);
void Serialize(string name, ref bool value);
void Serialize(string name, ref string value);
void Serialize<T>(string name, ref T value) where T : ICanSerialize;
void Serialize<T>(string name, ref ICollection<T> value) where T : ICanSerialize;
}
:
class C : ICanSerialize
{
string _firstName;
bool _happy;
public void Serialize(ISerializeMedium m)
{
m.Serialize("firstName", ref _firstName);
m.Serialize("happy", ref _happy);
}
}
ISerializeMedium. , , , .
, .