У меня есть класс MyItems в моем пространстве имен как
[DataContract]
public class MyItems {
[DataMember]
public int LineNum { get; set; }
[DataMember]
public string ItemCode { get; set; }
[DataMember]
public string Priority { get; set; }
[DataMember]
public string Contact { get; set; }
[DataMember]
public string Message { get; set; }
}
и в XAML у меня есть кнопка, и в ее обработчике действий я пытаюсь десериализовать строку JSON, исходящую из формы, и пытаюсь обновить DataGrid.
На первом шаге Внутри слушателя действия я пытаюсь ..
List<MyItems> myItems= JSONHelper.DeserializeToMyItems<myItems>(result);
и результат (типа string) имеет
{"MyItems":[{"LineNum":"1","ItemCode":"A00001","Contact":"5","Priority":"1","Message":"IBM Infoprint 1312"}, {"LineNum":"2","ItemCode":"A00002","Contact":"5","Priority":"1","Message":"IBM Infoprint 1222"}, {"LineNum":"3","ItemCode":"A00003","Contact":"5","Priority":"1","Message":"IBM Infoprint 1226"}, {"LineNum":"4","ItemCode":"A00004","Contact":"5","Priority":"1","Message":"HP Color Laser Jet 5"}, {"LineNum":"5","ItemCode":"A00005","Contact":"5","Priority":"1","Message":"HP Color Laser Jet 4"}]}
Код JSONHelper.DeserializeToMyItems выглядит следующим образом:
public static List<MyItems> DeserializeToMyItems<MyItems>(string jsonString) { MyItems data = Activator.CreateInstance<MyItems>(); using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(jsonString))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<MyItems>)); return (List<MyItems>)serializer.ReadObject(ms); } }
Во время работы я получаю исключение в строке serializer.ReadObject (ms)
Unable to cast object of type 'System.Object' to type 'System.Collections.Generic.List`1[ServiceTicket.MyItems]'.
Я не уверен, как выполнить приведение типа, и я работаю со списком типов MyItems. Может кто-нибудь помочь мне в этом, пожалуйста? будет высоко оценен, поскольку я новичок в Silverlight.
спасибо
Denny