/// <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));
        }
Esempio n. 2
0
 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));
 }