WCF-Dienst Rückgabe-Objekt im Json-format

Habe ich einen WCF-Dienst und ich bin Gebäude ein Objekt namens FinalList enthält ein Objekt namens Chart und eine List<Data>.
Ich will zurück zu meiner ajax Funktion json-Daten in dem folgenden format:

{"d":{"chart":{"caption":"Year","exportatclient":"1","exportenabled":"1","exporthandler":"chartExporter","labelDisplay":"wrap","numberprefix":"","showborder":"1","slantLabels":"1","useroundedges":null,"yaxisname":"Anzahl
der
hits"},"data":[{"label":"1960s","link":null,"tooltext":null,"value":3},{"label":"1970s","link":null,"tooltext":null,"value":56},{"label":"1980s","link":null,"tooltext":null,"value":98}]}}

Aber mein Service ist wieder so:

{"d":{"__type":"FinalList:#MyNamespace.FusionChartsFields","chart":{"__type":"Chart:#MyNamespace.FusionChartsFields","caption":"Year","exportatclient":"1","exportenabled":"1","exporthandler":"chartExporter","labelDisplay":"wrap","numberprefix":"","showborder":"1","slantLabels":"1","useroundedges":null,"yaxisname":"Anzahl
der
hits"},"data":[{"__type":"Data:#MyNamespace.FusionChartsFields","label":"1960s","link":null,"tooltext":null,"value":3},{"__type":"Data:#MyNamespace.FusionChartsFields","label":"1970s","link":null,"tooltext":null,"value":56},{"__type":"Data:#MyNamespace.FusionChartsFields","label":"1980s","link":null,"tooltext":null,"value":98}]}}

Wenn ich in WebServices (asmx) ich brauchte nur zu erklären, meine Klasse als "Objekt" anstelle von FinalList, dann waren die Ergebnisse in der korrekten json-format, die ich brauche.

Ich habe versucht, die Umwandlung in string und bringt es mir das richtige, aber einschließlich '\' (z.B. {"d":{\"chart\":{\"caption\":\"Jahr\") und das ist nicht das, was ich will.

Weiß jemand wie ich das entfernen kann diese "__type" - und class-Namen?

Ich bin mit .Net 4

Meine FinalList Klasse ist wie folgt:

public class FinalList
    {
        private Chart _chart;
        private List<Data> _data = new List<Data>();

        public Chart chart
        {
            get { return _chart; }
            set { _chart = value; }
        }

        public List<Data> data
        {
            get { return _data; }
            set { _data = value; }
        }
    }

Mein service-Vertrag enthält

[OperationContract]
[WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]

obigen seine Erklärung.

Was macht Ihr Modell-Klasse definition Aussehen? (__type ist in der Regel ein Hinweis auf die DataContractSerializer über zu übersetzen, wie interfaces oder abstrakten Basisklassen.)
Meine Klasse in meiner svc.cs hat "[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Erlaubt)]" über seine Erklärung.

InformationsquelleAutor Jenninha | 2012-09-20

Schreibe einen Kommentar