private static byte[] FromFloat(object value, int order) { if (value is double d || double.TryParse(value.ToString(), out d)) { return(ProtoBufSerializer.GetData(d, order)); } return(null); }
private static byte[] FromBool(object value, int order) { if (value is bool b || bool.TryParse(value.ToString(), out b)) { return(ProtoBufSerializer.GetData(b, order)); } return(null); }
private static byte[] FromUint32(object value, int order) { if (value is uint v1 || uint.TryParse(value.ToString(), out v1)) { return(ProtoBufSerializer.GetData(v1, order)); } return(null); }
static void MemoryWriter() { var typeModel = RuntimeTypeModel.Create(); var ms = new MemoryStream(); var writer = ProtoWriter.State.Create(ms, typeModel); // Int - 5, 500 writer.WriteFieldHeader(5, WireType.Varint); writer.WriteInt32(500); writer.Flush(); ms.Position = 0; var data = ms.ToArray(); ms.Close(); ms.Dispose(); ms = null; Print(1); var value1 = new ValueDemo() { Value = 500 }; data = ProtoBufSerializer.Serialize(value1); Print(2); data = ProtoBufHelper.GetData(500, "int32", 5); Print(3); // UInt32 - 4, Uint.MaxValue ms = new MemoryStream(); writer = ProtoWriter.State.Create(ms, typeModel); writer.WriteFieldHeader(4, WireType.Varint); writer.WriteUInt32(uint.MaxValue); writer.Flush(); ms.Position = 0; data = ms.ToArray(); ms.Close(); ms.Dispose(); ms = null; Print(4); value1 = new ValueDemo() { Values = UInt32.MaxValue }; data = ProtoBufSerializer.Serialize(value1); Print(5); data = ProtoBufHelper.GetData(UInt32.MaxValue, "uint32", 4); Print(6); // Boolean, 300 - true ms = new MemoryStream(); writer = ProtoWriter.State.Create(ms, typeModel); writer.WriteFieldHeader(3, WireType.Varint); writer.WriteBoolean(true); writer.Flush(); ms.Position = 0; data = ms.ToArray(); ms.Close(); ms.Dispose(); ms = null; Print(7); value1 = new ValueDemo { Success = true }; data = ProtoBufSerializer.Serialize(value1); Print(8); data = ProtoBufHelper.GetData(true, "bool", 3); Print(9); // String var s = "Hello World!哈罗!"; ms = new MemoryStream(); writer = ProtoWriter.State.Create(ms, typeModel); writer.WriteFieldHeader(6, WireType.String); writer.WriteString(s); writer.Flush(); ms.Position = 0; data = ms.ToArray(); ms.Close(); ms.Dispose(); ms = null; Print(10); value1 = new ValueDemo { Str = s }; data = ProtoBufSerializer.Serialize(value1); Print(11); data = ProtoBufHelper.GetData(s, "string", 6); Print(12); // double var d = 105.5D; ms = new MemoryStream(); writer = ProtoWriter.State.Create(ms, typeModel); writer.WriteFieldHeader(7, WireType.Varint); writer.WriteDouble(d); writer.Flush(); ms.Position = 0; data = ms.ToArray(); ms.Close(); ms.Dispose(); ms = null; Print(13); value1 = new ValueDemo { Measure = d }; data = ProtoBufSerializer.Serialize(value1); Print(14); data = ProtoBufHelper.GetData(s, "double", 7); Print(15); void Print(int i) { Console.WriteLine($"{i}: {BitConverter.ToString(data)}"); } }
private static byte[] FromString(object value, int order) { var s = value.ToString(); return(ProtoBufSerializer.GetData(s, order)); }