我有课上课:
public class Operation
{
public string Type { get; set; }
public OperationOptions Options { get; set; }
}
其中Type
的值定义Options
的类型。但是我必须将discriminator
添加到OperationOptions
类型
[KnownType(typeof(EchoOptions))]
[KnownType(typeof(VetDocumentAcceptanceOptions))]
[JsonConverter(typeof(JsonInheritanceConverter), "discriminator")]
public class OperationOptions
{
}
public class EchoOptions : OperationOptions
{
}
public class VetDocumentAcceptanceOptions : OperationOptions
{
}
所以我进入了swagger.json:
"OperationOptions": {
"type": "object",
"discriminator": {
"propertyName": "discriminator",
"mapping": {
"EchoOptions": "#/components/schemas/EchoOptions",
"VetDocumentAcceptanceOptions": "#/components/schemas/VetDocumentAcceptanceOptions"
}
}
但是我的模型中Discriminator
中没有属性OperationOptions
。
是否可以使用Type
中的Operation
作为OperationOptions
的区分符?
答案 0 :(得分:0)
JsonInheritanceConverter
将自动将discriminator
属性添加到序列化JSON,并在将JSON反序列化为一种类型以选择正确的类型时使用此属性。最好不要将该属性视为C#属性。