Como você Serialize ScriptObjects para JSON para salvar em Silverlight armazenamento isolado?
-
02-07-2019 - |
Pergunta
De acordo com este artigo Silverlight 2 Beta 2 suporta o objeto DataContractJsonSerializer
. Mas, quando eu tento usá-lo VS diz
"Tipo 'DataContractJsonSerializer' não está definido".
Eu tenho um método marcado como ScriptableMember que é chamada de JavaScript e é passado um objeto. Dentro deste método preciso para serializar o objeto para uma string (de preferência JSON) e salve-o no armazenamento isolado.
O Silverlight 2 Beta 2 realmente apoiar DataContractJsonSerializer? Ou que alguém iria recomendar um método diferente de salvar o JavaScript criado ScriptObject no armazenamento isolado?
Solução
Na verdade, a resposta é, o DataContractJsonSerializer faz parte do Silverlight 2 Beta 2, mas você precisa adicionar uma referência para System.ServiceModel.Web ao seu projeto Silverlight para usá-lo.
Eu não percebi que você ainda precisava para adicionar dll referências em Silverlight. Eu pensei que incluiu automaticamente tudo de uma forma semelhante à forma como ASP.NET faz.
Outras dicas
Existe uma versão Silverlight do Json.NET que irá serializar os objetos para JSON. Ele não requer [DataContract] e [DataMember] todos os atributos sobre seus objetos.
Por enquanto, a única solução para este que eu encontrei é usar o ASP.NET AJAX JavaScriptSerializer para fazer o JSON serialização / desserialização em JavaScript, e depois é só usar o Silverlight para armazenar / recuperar a string resultante.
Sys.Serialization.JavaScriptSerializer.serialize(obj);
Sys.Serialization.JavaScriptSerializer.deserialize(json);
Eu diria que sua própria resposta seria a melhor abordagem. JavaScript é morto lento em fazer coisas assim, então melhor deixar o-parte de serialização para ASP.NET.