ciao, in realtà, un servizio web o wcf non inviano mai un oggetto reale, in quanto questo è solo in memoria nel server, inviano il corrispondente serializzato, ma il client probabilmente, non ha bisogno di tutti i dati di un datatable, quindi sprecheresti solo banda e risorse. Ti conviene, a limite, stabilire un oggetto che puoi inviare al client con i dati che li servono, per fare questo, potresti utilizzare gli attributi sulla classe che decidi di inviare (eventualmente mandi una List<tuoOggetto>), in questo modo, viene serializzata automaticamente per essere inviata al client.
se osservi il codice sotto (preso da qui ), vedrai l'uso degli attributi su una classe da restituire e/o usare come argomenti dei metodi del servizio.
codice:
[DataContract(Name = "UserArgsSMS", Namespace = "")]
public class UserArgsSMS
{
[DataMember(Name = "PhoneNumber")]
public string PhoneNumber { get; set; }
[DataMember(Name = "Text")]
public string Text { get; set; }
}
a questo punto potrai anche inviare una List<UserArgsSMS>. Sul client, quando aggiungerai un riferimento al servizio, verrà creato il nemespace contenente anche questa classe.