/// <summary> /// /// </summary> /// <typeparam name="T">Have to be serializeable with custom genericSerializer</typeparam> /// <param name="obj"></param> /// <param name="commandName"></param> /// <param name="genericSerializer"></param> public static BinaryProtocol FromData <T>(T obj, string commandName, IGenericSerializer <T, byte[]> genericSerializer) where T : new() { if (obj == null) { throw new ArgumentNullException(nameof(obj)); } if (string.IsNullOrEmpty(commandName)) { throw new ArgumentNullException(nameof(commandName)); } if (genericSerializer == null) { throw new ArgumentNullException(nameof(genericSerializer)); } var body = genericSerializer.Serialize(obj); return(new BinaryProtocol(body, commandName)); }
public byte[] Serialize(object value) { return(_serializer.Serialize(ProtocolVersion, value)); }
/// <summary> /// Serialize a TComplex to a TOutput async /// </summary> /// <typeparam name="TComplex">The Deserialized Type</typeparam> /// <typeparam name="TSerialized">The Serialized Type</typeparam> /// <param name="serializer">The Serializer instance</param> /// <param name="input">The TComplex Input</param> /// <returns>The TSerialized Task</returns> public static async Task <TSerialized> SerializeAsync <TComplex, TSerialized>(this IGenericSerializer <TSerialized> serializer, TComplex input) { return(await Task.Run(() => { return serializer.Serialize <TComplex>(input); }).ConfigureAwait(false)); }