Domanda

Secondo questo articolo Silverlight 2 Beta 2 supporta l'oggetto DataContractJsonSerializer . Ma, quando provo ad usarlo, VS dice

  

" Tipo 'DataContractJsonSerializer' non definito " ;.

Ho un metodo contrassegnato come ScriptableMember che viene chiamato da JavaScript e viene passato un oggetto. All'interno di questo metodo devo serializzare l'oggetto su una stringa (preferibilmente JSON) e quindi salvarlo in un archivio isolato.

Silverlight 2 Beta 2 supporta davvero DataContractJsonSerializer? O qualcuno consiglierebbe un metodo diverso per salvare JavaScript creato ScriptObject nella memoria isolata?

È stato utile?

Soluzione

In realtà la risposta è, DataContractJsonSerializer fa parte di Silverlight 2 Beta 2, ma è necessario aggiungere un riferimento a System.ServiceModel.Web al progetto Silverlight per usarlo.

Non mi rendevo conto che dovevi ancora aggiungere riferimenti a dll in Silverlight. Ho pensato che includesse automaticamente tutto in modo simile a come fa ASP.NET.

Altri suggerimenti

Esiste una versione Silverlight di Json.NET che serializzerà i tuoi oggetti su JSON. Non richiede gli attributi [DataContract] e [DataMember] su tutti i tuoi oggetti.

Json.NET

Per ora, l'unica soluzione a questo che ho trovato è utilizzare ASP.NET AJAX JavaScriptSerializer per eseguire la serializzazione / deserializzazione JSON in JavaScript, quindi utilizzare Silverlight per archiviare / recuperare la stringa risultante.

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

Direi che la tua risposta sarebbe l'approccio migliore. JavaScript è molto lento nel fare cose del genere, quindi è meglio lasciare la parte di serializzazione su ASP.NET.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top