Asp.net 使用Newtonsoft Jschema,如何验证基于抽象类的派生类属性?

Asp.net 使用Newtonsoft Jschema,如何验证基于抽象类的派生类属性?,asp.net,json,asp.net-core,json.net,jsonschema,Asp.net,Json,Asp.net Core,Json.net,Jsonschema,例如,我有一个抽象类Production的数组,它派生了Movie和Series的类。我在模式中有一个数组,它是一个生产[],可以容纳电影或系列。我正在验证第三方提供给我们的模式。我只是验证,而不是反序列化,所以我用验证流验证它 当我验证该数组时,它只根据生产中的属性进行验证。它跳过派生类中的任何属性。如何让它根据正确的派生类属性进行验证?我在Production上有一个ProductionType属性,它与派生类是一对一的匹配 我已尝试将派生类架构添加到ProductionGeneration

例如,我有一个抽象类
Production
的数组,它派生了
Movie
Series
的类。我在模式中有一个数组,它是一个
生产[]
,可以容纳
电影
系列
。我正在验证第三方提供给我们的模式。我只是验证,而不是反序列化,所以我用验证流验证它

当我验证该数组时,它只根据
生产中的属性进行验证。它跳过派生类中的任何属性。如何让它根据正确的派生类属性进行验证?我在
Production
上有一个
ProductionType
属性,它与派生类是一对一的匹配

我已尝试将派生类架构添加到
ProductionGenerationProvider
中的“AdditionalItems”中,并在
ProductionValidationProvider
中对其进行手动验证。这是通过
value.Validate(matchedSchemaItem)
实现的。这将导致生成一个全新的验证,而不是在当前验证的上下文中对其进行验证

我还尝试在模式上使用
OneOf
属性,将引用传递给所有派生类型,但它只是告诉我它没有针对其中一个中的任何项进行验证


有没有其他方法可以做到这一点?我假设这是一个已解决的问题,但我还没有找到解决方案。

1)您是如何实现多态性的?通过
“$type”
typenameholling
属性?或者通过
产品上的某个自定义鉴别器属性
?2) 我已尝试将派生类架构添加到ProductionGenerationProvider中的“AdditionalItems”中,并在ProductionValidationProvider中对其进行手动验证-请您将您的问题分享给我们,您尝试了什么,但没有成功?@dbc我只是用它来验证架构。那么,我是否需要确保提供给我的JSON上有一个
$type
?如果存在,验证器会知道要检查模式中的哪个引用吗?我将其验证为流是否重要?1)您如何实现多态性?通过
“$type”
typenameholling
属性?或者通过
产品上的某个自定义鉴别器属性
?2) 我已尝试将派生类架构添加到ProductionGenerationProvider中的“AdditionalItems”中,并在ProductionValidationProvider中对其进行手动验证-请您将您的问题分享给我们,您尝试了什么,但没有成功?@dbc我只是用它来验证架构。那么,我是否需要确保提供给我的JSON上有一个
$type
?如果存在,验证器会知道要检查模式中的哪个引用吗?我将其验证为流是否重要?