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?

Foi útil?

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.

Json.NET

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top