当我序列化一个具有变量的类时,该类是具有子类值的基类,那么我可以对其进行序列化,以便将$type
变量放入其中,这样它在反序列化时便知道其应为哪种类型。
但是是否可以将变量名$type
更改为其他名称,例如_type
?
以下是示例:
namespace ScratchCore
{
public class Person
{
public string Name;
public BaseDetail Detail;
}
public class BaseDetail
{
public string Description;
}
public class FooDetail: BaseDetail
{
public string Foo;
}
public class BarDetail: BaseDetail
{
public string Bar;
}
class Program
{
static void Main(string[] args)
{
JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto };
Person peter = new Person();
peter.Detail = new FooDetail();
var json = JsonConvert.SerializeObject(peter, Formatting.Indented ,settings);
Console.WriteLine(json);
Console.WriteLine("Done");
Console.ReadLine();
}
}
}
在这里,您可以看到它已序列化detail
并自动在其中放入了$type
变量。
那么可以将此变量名从$type
更改为_type
吗?
更新:
的重复项