Ich habe ein sehr seltsames Problem in Bezug auf Serializer von ServiceStack.Text.ServiceStack Serialize und Deserialize Dictionary mit Objekten
Angenommen, ich habe zwei Klassen, eine Person
und eine andere Address
genannt.
Person:
public class Person
{
public string Name { get; set; }
public Dictionary<string,object> ExtraParams { get; set; }
}
Adresse:
public class Address
{
public string StreetName { get; set; }
}
In einer der Methoden, die ich tun dies
var john = new Person
{
Name: "John",
ExtraParameters: new Dictionary<string, object>
{
{ "AddressList", new List<Address>{
new Address{ StreetName : "Avenue 1" }
}
}
}
};
ich ServiceStack des ORMLite zu verwende. Nun ist die Probleme kommen, wenn ich versuche, die Daten aus der Datenbank abrufen und zurück zum Wörterbuch werfen:
//save to database
var id = db.Save(john)
//retrieve it back
var retrieved = db.SingleById<Person>(id);
//try to access the Address List
var name = retrieved.Name; //this gives "John"
var address = retrieved.ExtraParameters["AddressList"] as List<Address>; //gives null always , due to typecasting failed.
Wenn ich versuche, zu debuggen, die ExtraParameters ist ein Dictionary
, mit key
Namen „Address“, aber die value
ist eigentlich eine string - "[{StreetName:"Avenue 1"}]"
Irgendwelche Ideen wo habe ich falsch gemacht? Ich habe SO auf und ab über Typecasting auf die Objekte und Wörterbücher gesehen, aber keiner von ihnen schien das gleiche Problem zu haben wie ich.
ich folgende Konfigurationen eingestellt haben:
JsConfig.ExcludeTypeInfo = true;
JsConfig.ConvertObjectTypesIntoStringDictionary = true;
versuchen, 'AddressList' als' List
'mit dem' Type Serializer' zu deserialisieren. –