/// <summary>
 /// Marshal object of type T using protocol writer W
 /// </summary>
 /// <typeparam name="W">Protocol writer</typeparam>
 /// <typeparam name="T">Type representing a Bond schema</typeparam>
 /// <param name="writer">Writer instance</param>
 /// <param name="obj">Object to be marshaled</param>
 public static void To <W, T>(W writer, T obj)
     where W : IProtocolWriter
 {
     writer.WriteVersion();
     Serialize.To(writer, obj);
 }