问题描述
我们希望有一个具有Input
属性的基本类型,例如Value
,然后有一个TextInput
属性,另外还有一个Placeholder
属性。下一个子类型可以是NumberInput
,例如,它可以具有MaxLength
属性...为了使用Swagger设置继承并使用生成的客户端来继承它,我们在{{1}之后进行了操作}:
services.AddControllers.()
稍后:
.AddNewtonsoftJson(options =>
options.SerializerSettings.TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All)
目前在模型本身上没有注释...在基础 services.AddSwaggerGen(
options =>
{
options.IncludeXmlComments(XmlCommentsFilePath);
options.EnableAnnotations(true);
options.UseAllOfForInheritance();
options.USEOneOfForpolymorphism();
//even tried that
options.SelectdiscriminatorNameUsing((baseType) => "Input");
options.SelectdiscriminatorValueUsing((subType) => subType.Name);
类定义中使用此注释进行了尝试:
Input
但是,老实说,我不确定该如何处理判别器...它将“类型”自动添加为属性。
调用API响应很好,但问题是生成的C#客户端无法反序列化...返回的属性以其名称的前缀为[SwaggerSubTypes(new Type[] { typeof(TextInput),typeof(NumberInput)},discriminator="Type")]
并且没有任何值...架构看起来不错...
有人知道如何通过API和生成的C#客户端简单实现基本类型和子类型吗?我似乎无法完全理解它并使它起作用...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)