使用生成的C#客户端在.NET Core 3.1 API中进行基本和子类型序列化

问题描述

我们希望有一个具有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 (将#修改为@)