Mam następujący model:Jak deserializować słownik przy użyciu DataContractJsonSerializer?
[DataContract]
public class MessageHeader
{
private Guid? messageId;
public Guid MessageId
{
get
{
if (messageId == null)
messageId = Guid.NewGuid();
return messageId.Value;
}
}
[DataMember]
public string ObjectName { get; set; }
[DataMember]
public Dictionary<string, object> Parameters { get; set; } // Can't deserialize this
[DataMember]
public Action Action { get; set; }
[DataMember]
public User InitiatingUser { get; set; }
}
Teraz dla jakiegoś nieznanego powodu, DataContractJsonSerializer can't deserialize JSON into a dictionary (Patrz dodatkową sekcję szczegóły).
Niestety DataContractJsonSerializer jest również zapieczętowany z powodów, które są poza mną.
Potrzebuję sposobu na obejście tego, czy ktoś ma wskazówkę?
Dlaczego nie można DataContractJsonSerializer serializacji słownika jako: Słownik [ "ObjectName"] = wartość; –
Ponadto metoda CollectionDataContractAttribute nie ma zastosowania do DataContractJsonSerializer, ponownie bez żadnego powodu. O pierwszym linku, co mam zrobić, jeśli nie mam JavaScriptSerializer, ponieważ jest to biblioteka DLL. –
, ponieważ jest to 'Web' dll? Nie rozumiem? Możesz użyć dowolnej biblioteki w .NET GAC, po prostu przez odwołanie się do niej. Taka jest moc biblioteki .NET. Tylko dlatego, że jest w System.Web lub czymkolwiek, to nic nie znaczy. To tylko przestrzeń nazw dla logicznej organizacji obiektów, metod i tym podobnych. A co do _Dlaczego DCJS nie może serializować słownika w ten sposób? Idk, ale pokazałem ci powyższy problem. – jcolebrand