Ну, это будет связано с сериализацией. Помните - ваш клиент Silverlight отключен от сервера, так же как браузер отключен от сервера.
Здесь есть отличная статья о сериализации JSON и из Silverlight. Вот краткое изложение статьи:
Давайте начнем с краткого представления о том, что такое JSON. Он обозначает J ava S cript O bject N и используется как альтернатива XML. Вот простой пример для файла JSON:
{"FirstName":"Martin","LastName":"Mihaylov"}
для одного объекта
И
[{"FirstName":"Martin","LastName":"Mihaylov"},{"FirstName":"Emil","LastName":"Stoychev"}]
для нескольких объектов.
Это похоже на массив. В зависимости от сериализуемого объекта это может выглядеть очень сложно.
Сериализация
Чтобы быть сериализуемым с DataContractJsonSerializer, мы должны установить атрибут [DataContract]. Свойства, которые будут использоваться при сериализации, должны иметь атрибуты [DataMember]. Примечание. Чтобы использовать эти атрибуты, добавьте ссылку на System.Runtime.Serialization;
[DataContract]
public class Person
{
[DataMember]
public string FirstName
{
get;
set;
}
[DataMember]
public string LastName
{
get;
set;
}
}
Теперь мы готовы начать сериализацию. Давайте создадим метод, который принимает наш объект в качестве аргумента и возвращает строку в формате JSON:
public static string SerializeToJsonString(object objectToSerialize)
{
using (MemoryStream ms = new MemoryStream())
{
DataContractJsonSerializer serializer =
new DataContractJsonSerializer(objectToSerialize.GetType());
serializer.WriteObject(ms, objectToSerialize);
ms.Position = 0;
using (StreamReader reader = new StreamReader(ms))
{
return reader.ReadToEnd();
}
}
}
десериализация
public static T Deserialize<T>(string jsonString)
{
using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(jsonString)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
return (T)serializer.ReadObject(ms);
}
}
Вот как это выглядит из кода клиента:
List<Person> persons = Deserialize<List<Person>>( jsonString );