-3
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace test_protosharp
{
[Serializable]
[ProtoBuf.ProtoContract]
public class MyClass
{
[ProtoSharp.Core.Tag(1)]
[ProtoBuf.ProtoMember(1)]
public int MessageType { get; set; }
[ProtoSharp.Core.Tag(2)]
[ProtoBuf.ProtoMember(2)]
public string Message { get; set; }
}
class Program
{
private static List<MyClass> _forSerialize;
static void Main()
{
_forSerialize = new List<MyClass>
{
new MyClass {MessageType = 0, Message = "Test1"},
new MyClass {MessageType = 1, Message = "Test2"},
new MyClass {MessageType = 2, Message = "Test3"},
new MyClass {MessageType = 3, Message = "Test4"}
};
// Test BinaryFormatter Serializer
using (Stream fs = File.Create("test.bin"))
{
BinaryFormatter bin = new BinaryFormatter();
bin.Serialize(fs, _forSerialize);
}
using (Stream fs = File.OpenRead("test.bin"))
{
BinaryFormatter bin = new BinaryFormatter();
_forSerialize = (List<MyClass>)bin.Deserialize(fs);
}
if (_forSerialize.Count == 4)
Console.WriteLine("BinaryFormatter serializer work");
// Test protobuf-net Serializer
using (FileStream fs = File.Create("test.protobuf-net"))
ProtoBuf.Serializer.Serialize(fs, _forSerialize);
using (FileStream fs = File.OpenRead("test.protobuf-net"))
_forSerialize = ProtoBuf.Serializer.Deserialize<List<MyClass>>(fs);
if (_forSerialize.Count == 4)
Console.WriteLine("protobuf-net serializer work");
// Test ProtoSharp Serializer
using (FileStream fs = File.Create("test.ProtoSharp"))
ProtoSharp.Core.Serializer.Serialize(fs, _forSerialize);
using (FileStream fs = File.OpenRead("test.ProtoSharp"))
_forSerialize = ProtoSharp.Core.Serializer.Deserialize<List<MyClass>>(fs);
if (_forSerialize.Count != 4)
Console.WriteLine("ProtoSharp serializer NOT work");
Console.ReadLine();
}
}
}