我试图让 Json.NET 序列化一个对象并包含它的类型,如下所示...
[JsonObject(ItemTypeNameHandling = TypeNameHandling.All)]
public class ABC
{
public string Easy;
public string As;
}
。以下测试...
ABC abc = new ABC();
abc.Easy = "123";
abc.As = "do rey me";
string output = JsonConvert.SerializeObject(abc);
。输出是...
{"Easy":"123","As":"do rey me"}
。我希望...
{"$type":"MyTest+ABC, MyTest","Easy":"123","As":"do rey me"}
我正在尝试使选定的合同包含 Web API 2 项目中的类型信息。 除了全局设置之外,没有其他方法可以做到这一点吗?这样。。。
config.Formatters.JsonFormatter.SerializerSettings.TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All
我最终使用的解决方案是确保此类类型在数组中序列化。 所以
ABC abc = new ABC();
abc.Easy = "123";
abc.As = "do rey me";
var package = new
{
Data = [] { abc }
};
string output = JsonConvert.SerializeObject(abcArray);
生成的 JSON 包含对象的类型
{
Data = [
{"$type":"MyTest.ABC, MyTest","Easy":"123","As":"do rey me"}
]
}