2009-05-22 6 views
3

Ich konnte eine HashTable von einem Webdienst zurückgeben, den ich für ein .Net 2.0 eingerichtet habe, aber der Dienst schlägt eine DataTable in JSON nicht erneut. Ich erhalte immer den folgenden Fehler: 'Ein zirkulärer Verweis wurde beim Serialisieren eines Objekts erkannt'. Irgendwelche Tipps?Wie Sie eine DataTable vom .Net Web Service zurückgeben?

[WebMethod(EnableSession = true) ] 
public DataTable getSavedAddresses() 
{ 
    DataTable dt = new DataTable(); 
    if (Session["ClientID"] != null) 
    { 
     int clientId = Convert.ToInt32(Session["ClientID"]); 
     dt = Address.GetClientShippingAddresses(clientId); 
    } 
    return dt; 

}

Antwort

1

Die kreisförmige Referenz ist auf DataTable wahrscheinlich eine Columns Eigenschaft aufweist, und jedes Objekt eine DataColumnTable Eigenschaft.

Die Informationen in this blog post by Rick Strahl können Ihnen vielleicht behilflich sein.

+0

Interessant. Ja, ich habe es gelesen, aber ich konnte es nicht herausfinden. – GreenEggs

+0

Ich denke, ich werde einfach versuchen, stattdessen XML zu verwenden. – GreenEggs

+0

Ich denke, diese Antwort legt nahe, dass ein benutzerdefinierter Serializer benötigt wird. Das macht Rick Strahl im Blog-Post zuerst mit JSON.NET und dann mit der integrierten JavaScriptSerializer-Bibliothek. – Spivonious

Verwandte Themen