我正在使用 C# .NET 4.0,Newtonsoft JSON 4.5.0。
public class Recipe
{
[JsonProperty(TypeNameHandling = TypeNameHandling.All)]
public List<IFood> Foods{ get; set; }
...
}
我想序列化和反序列化这个 Recipe 对象。如果我在应用程序生命周期内序列化和反序列化对象,则成功,但如果我序列化对象,退出应用程序然后反序列化它,则会引发异常,它无法实例化 IFood(因为它是一个接口)。
问题是它没有序列化接口的实现。
"$type": "System.Collections.Generic.List`1[[NSM.Shared.Models.IFood, NSMShared]], mscorlib"
我尝试使用 TypeNameHandling.Object 和 Array 和 Auto,但没有帮助。有没有办法正确序列化它?或者至少在反序列化之前定义类映射?
编辑: 我使用 JSON 和 Hammock ( http://code.google.com/p/relax-net/ ),CouchDB 的 C# 驱动程序,它在内部序列化和反序列化对象。如前所述,问题在于它没有序列化接口实现。