我们正在使用 JSON.NET 序列化自定义对象。我已经编写了一个单元测试,它成功地执行了我们的自定义对象的 JSON 序列化:
// Generate custom object...
var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }; // Serializing objects referred to by abstract type, see comment at http://www.tomdupont.net/2014/04/deserialize-abstract-classes-with.html
var json = JsonConvert.SerializeObject(object, settings);
// ...Deserialize object and compare are equal
但是,在我们的 APIController 中,它处理 HTTP 请求并具有如下方法:
[HttpPost]
public ActionResult ProfileFile()
{
// Code to handle HTTP request
}
对以相同方式生成的自定义对象执行相同的序列化操作会在被序列化的自定义对象中生成一个自定义对象的流System.InvalidCastException
(所有这些对象都已使用 JSON.NET 属性进行标记,并具有自己的通过单元测试)。
什么会导致它在我们的 Web 项目中表现不同,而它在单元测试中工作?提前致谢。