我使用ServiceStack将一些对象序列化和反序列化为JSON。考虑这个例子:
public class Container
{
public Animal Animal { get; set; }
}
public class Animal
{
}
public class Dog : Animal
{
public void Speak() { Console.WriteLine("Woof!"); }
}
var container = new Container { Animal = new Dog() };
var json = JsonSerializer.SerializeToString(container);
var container2 = JsonSerializer.DeserializeFromString<Container>(json);
((Dog)container.Animal).Speak(); //Works
((Dog)container2.Animal).Speak(); //InvalidCastException
最后一行抛出一个InvalidCastException,因为Animal字段被实例化为Animal类型,而不是Dog类型。有没有什么方法可以让ServiceStack保留这个特定实例属于Dog类型的信息?
https://stackoverflow.com/questions/10750571
复制相似问题