C# 使用Json.Net序列化派生类型时出错

C# 使用Json.Net序列化派生类型时出错,c#,serialization,json.net,C#,Serialization,Json.net,我正试图用以下简单的代码片段(反)序列化一个类:- var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; // Serialize var json = JsonConvert.SerializeObject(obj, settings); // Deseralize - this is where it fails var test = JsonConvert.Deser

我正试图用以下简单的代码片段(反)序列化一个类:-

var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All };

// Serialize
var json = JsonConvert.SerializeObject(obj, settings);

// Deseralize - this is where it fails
var test = JsonConvert.DeserializeObject<MyObject>(json, settings);
序列化的JSON如下所示(再次替换公司NS)-相关部分(即“$type”)似乎是正确的:-

{“$type”:“Xxx.Common.MyObject,Xxx.Common”,“Name”:null,“Foo”:0.0,“步长”:0.0,“收敛”:0.0,“截止”:0.0}


请展示一个简短但完整的程序来演示问题。@JonSkeet请参见上面的Edit2。提供
MyObject
的完整结构和序列化数据
json
将很有帮助。您声称“上述代码是问题的完整再现”-显然不是。这是一段代码。一个完整的复制将是我们可以复制、粘贴、编译和运行的东西——尽管在这种情况下使用多个程序集。看到了吗?您的路径中是否有可能存在旧版本的DLL(可能来自不同的格式(x86与x64))?你能在数据库中有一个旧版本的DLL吗?另见。
public class MyObject
{
    public string Name {get;set;}
    public double Foo {get;set;}
    ...
}