An ultra-fast expression-based binary serializer/deserializer using pre-emitted serializers/deserializers with support for transmitting types even if they do not exist on the other assembly.
Below a few examples for simple usage.
public class TestDependency
{
public string TestSByte { get; set; }
public long TestLong1;
public long TestLong2;
}
public class Test
{
public int[] TestIntArray { get; set; }
public TestDependency[] TestDependency1;
public List<TestDependency> TestDependency3;
public TestDependency TestDependency2;
public int TestInt;
public string TestString;
public byte[][] TestData { get; set; }
}
var data = MessageSerializer.Serialize(hello);
var size = MessageSerializer.GetSize(hello);
var d = new byte[size];
using (Stream stream = new MemoryStream(d))
using (BinaryWriter writer = new BinaryWriter(stream, Encoding.UTF8, true))
{
MessageSerializer.Serialize(writer, hello);
}
var hello = MessageDeserializer.Deserialize<Hello>();