我的api上的错误基类有问题。我使用this选项来查看它在文档上的工作。但是当我使用swagger json在https://editor.swagger.io上生成Rest代码时,它会生成3个类,BaseException(抽象),错误和警告。当我使用相应的代码时,在我的响应中出现了一个BaseException列表,但总是向我显示基本信息
exceptions:[
{
"severity": "Warning",
"message": "warning message"
},
{
"severity": "Error",
"message": "testing"
}
]
如果我把它作为抽象
[DataContract]
[JsonConverter(typeof(JsonSubtypes), "BaseException")]
[JsonSubtypes.KnownSubType(typeof(ErrorData), "Error")]
[JsonSubtypes.KnownSubType(typeof(WarningData), "Warning")]
public abstract class BaseException : IEquatable<BaseException>
{
提出了另一个例外:
Could not create an instance of type Api.Test.Client.Model.BaseException. Type is an interface or abstract class and cannot be instantiated. Path 'severity', line 488, position 17.
我试图维护生成的类结构,但没有运气,因为总是返回BaseException内容,类上的鉴别器是null(我不知道为什么)
我怎样才能解决这个问题?谢谢!
JsonConverter
属性的第二个参数应该是鉴别器字段,在你的JSON示例中它应该是severity
所以BaseException
类应该这样定义:
[DataContract]
[JsonConverter(typeof(JsonSubtypes), "severity")]
[JsonSubtypes.KnownSubType(typeof(ErrorData), "Error")]
[JsonSubtypes.KnownSubType(typeof(WarningData), "Warning")]
public abstract class BaseException : IEquatable<BaseException>
{