Trasfiriendo tipos personalizados desde el servidor al cliente con AJAX
Cuando invocamos WebServices desde JavasScript mediante ASP.NET AJAX no solo podemos obtener retornos de tipos definidos como lo son Integer, Boolean, Double, String. ASP.NET AJAX nos permite transferir tipos personalizados desde el servidor al cliente de una forma totalmente transparente ya que ASP.NET AJAX primero serializa los datos mediante JSON (JavaScript Object Notation) que es un formato de intercambio de datos compacto que utiliza poco tráfico de red en el proceso de transporte en donde los objetos son representados por literales que es una notación para la representación de un valor.
Cuando el resultado es enviado al método de devolución de llamada es deserealizado de forma automática y el objeto puede ser manipulado de la misma forma como se haría con un objeto .NET
Para el siguiente ejemplo retorno desde un método de un webservice una lista genérica de tipo Product en donde este tipo está definido por medio de LINQ to SQL Classes en donde se envían desde el servidor al cliente todas las propiedades definidas en este tipo. Como buena práctica recomiendo que se realice un mapeo de tipos con LINQ para que solo se envíen al cliente los datos necesarios de esta manera será el intercambio de datos entre el servidor y el cliente más compacto y más eficiente.
C#
VB.NET
Resultado