Мне нужно написать ExtensionParsers для OpenApi. NET, чтобы при синтаксическом анализе документа yaml свойства расширения (свойства с именем x -thing) анализировались в соответствующие классы C#, которые Я написал вместо общего анализа в OpenApiObject.
Так, например, когда я использую OpenApi. NET для анализа следующего документа yaml:
openapi: 3.0.2
info:
title: 'My interface'
version: '1.0'
servers:
- url: https://www.example.com
paths:
"/student":
get:
parameters:
- name: school
in: query
schema:
type: string
x-setting:
name: 'Hello world'
number: 312
device: mobile
responses:
"200":
description: Successful
headers:
Content-Type:
schema:
type: string
content:
application/json:
schema:
type: string
объект параметра анализируется для C# объекта типа OpenApiParameter, имя имеет тип string, In является перечислением типа ParameterLocation, а схема имеет тип OpenApiSchema.
Но x-setting анализируется для C# объект типа OpenApiObject, имя анализируется как OpenApiString, число анализируется как OpenApiInteger, а устройство как OpenApiString.
Но поскольку у меня уже есть следующий класс c#:
class Setting
{
string Name;
int Number;
Device Device;
}
Я хочу, чтобы он был проанализирован для C# объекта типа Setting, name как строка, number как целое число и device как перечисление типа Device. Точно так же, как объект параметра.
Здесь упоминается здесь , что это можно сделать с помощью свойства ExtensionParsers. Но непонятно, как.
Документов нет, а пояснение в комментариях в коде не очень хорошее. Так может кто-нибудь помочь с этим?
Большое спасибо.