Pregunta

De acuerdo con este artículo Silverlight 2 Beta 2 admite el objeto DataContractJsonSerializer . Pero, cuando intento usarlo, VS dice

  

" El tipo 'DataContractJsonSerializer' no está definido " ;.

Tengo un método marcado como ScriptableMember que se llama desde JavaScript y se pasa un objeto. Dentro de este método, necesito serializar el objeto a una cadena (preferiblemente JSON) y luego guardarlo en un almacenamiento aislado.

¿Silverlight 2 Beta 2 es realmente compatible con DataContractJsonSerializer? ¿O alguien recomendaría un método diferente para guardar el ScriptObject creado en JavaScript en el almacenamiento aislado?

¿Fue útil?

Solución

En realidad, la respuesta es que DataContractJsonSerializer es parte de Silverlight 2 Beta 2, pero debe agregar una referencia a System.ServiceModel.Web a su proyecto de Silverlight para usarlo.

No me di cuenta de que todavía necesitaba agregar referencias dll en Silverlight. Pensé que incluía automáticamente todo de forma similar a como lo hace ASP.NET.

Otros consejos

Hay una versión Silverlight de Json.NET que serializará sus objetos a JSON. No requiere atributos [DataContract] y [DataMember] en todos sus objetos.

Json.NET

Por ahora, la única solución a esto que he encontrado es usar el ASP.NET AJAX JavaScriptSerializer para hacer la serialización / deserialización JSON en JavaScript, y luego usar Silverlight para almacenar / recuperar la cadena resultante.

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

Yo diría que su propia respuesta sería el mejor enfoque. JavaScript es muy lento para hacer cosas como esa, así que mejor deja la parte de serialización a ASP.NET.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top