Frage

Laut diesem Artikel Silverlight 2 Beta 2 unterstützt die DataContractJsonSerializer Objekt. Aber, wenn ich versuche, es zu benutzen VS sagt

  

"Typ 'DataContractJsonSerializer' ist nicht definiert".

Ich habe eine Methode als ScriptableMember markiert, die von JavaScript aufgerufen werden und wird ein Objekt übergeben. Innerhalb dieser Methode muss ich das Objekt in eine Zeichenfolge serialisiert werden (vorzugsweise JSON) und dann in isolierten Speicher speichern.

Ist Silverlight 2 Beta 2 wirklich DataContractJsonSerializer unterstützen? Oder würde jemand eine andere Methode zur Rettung des JavaScript erstellt Script im Isolated Storage empfehlen?

War es hilfreich?

Lösung

Eigentlich ist die Antwort, die DataContractJsonSerializer Teil von Silverlight 2 Beta 2 ist, aber Sie müssen einen Verweis auf System.ServiceModel.Web zu Silverlight-Projekt hinzuzufügen, es zu benutzen.

Ich wusste nicht, dass Sie immer noch dll Referenzen in Silverlight hinzufügen müssen. Ich dachte, es enthalten automatisch alles auf eine ähnliche Art und Weise, wie ASP.NET der Fall ist.

Andere Tipps

Es gibt eine Silverlight-Version von Json.NET, die Ihre Objekte zu JSON serialisiert werden. Es erfordert keine [Datacontract] und [Datamember] Attribute ganze Objekte.

Json.NET

Für jetzt die einzige Lösung für dieses Problem, das ich gefunden habe, ist das ASP.NET AJAX JavaScriptSerializer verwenden, um die JSON-Serialisierung / Deserialisierung in JavaScript zu tun, und dann nur Silverlight verwenden speichern / abrufen den resultierenden String zurück.

Sys.Serialization.JavaScriptSerializer.serialize(obj);
Sys.Serialization.JavaScriptSerializer.deserialize(json);

Ich würde sagen, Ihre eigene Antwort wäre der beste Ansatz. JavaScript ist tot langsam an Sachen wie das zu tun, also am besten lassen Sie die Serialisierung-Teil zu ASP.NET.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top