public void Serialize(BinarySerializationContext <T[, ]> context, T[,] value) { if (null == value) { context.Writer->Add(-1); return; } var xLength = value.GetLength(0); var yLength = value.GetLength(1); context.Writer->Add(xLength); context.Writer->Add(yLength); for (var x = 0; x < xLength; x++) { for (var y = 0; y < yLength; y++) { context.SerializeValue(value[x, y]); } } }