public static void WriteArray <T>(System.IO.BinaryWriter write, T[] lst) { bool isNull = lst == null; BinarySerializer.WriteBoolean(write, isNull); if (isNull) { return; } var count = lst.Length; BinarySerializer.WriteInt32(write, count); FuncWrite <T> Func = GetWriteFunc <T>(); for (int i = 0; i < count; i++) { Func(write, lst[i]); } }
public FuncWrap(FuncRead <T> readFunc, FuncWrite <T> writeFunc) { this.readFunc = readFunc; this.writeFunc = writeFunc; }
static void RegisterReaderWriter <T>(FuncRead <T> readFunc, FuncWrite <T> writeFunc) { _WriteHelper <T> .Fun = writeFunc; _ReadHelper <T> .Fun = readFunc; allSerializers.Add(typeof(T), new FuncWrap <T>(readFunc, writeFunc)); }
static void RegisterInnerReaderWriter <T>(FuncRead <T> readFunc, FuncWrite <T> writeFunc) { innerTypes.Add(typeof(T)); RegisterReaderWriter(readFunc, writeFunc); }