Member 13668663 Ответов: 0

Сгенерируйте схему для класса с помощью атрибута jsonconverterattribute


Я пытаюсь создать схему в формате JSON с использованием формата JSON.Чистая схема. Во всяком случае, мой класс имеет атрибут JsonConverter, как в приведенном ниже примере:

public class Building
{
[JsonConverter(typeof(BuildConverter))]
public string Name { get; set; }
public string Phone { get; set; }
public string Type { get; set; }
public string Address { get; set; }
}


При генерации схемы из вышеприведенного класса получается пустая схема {{}}, которая вызвана указанным атрибутом.

Что я уже пробовал:

Я хотел создать JSchemaGenerationProvider для своего класса, но все еще не могу получить правильную схему.

public class CustomSchemaProvider : JSchemaGenerationProvider
   {
    public override JSchema GetSchema(JSchemaTypeGenerationContext context)
    {
        if (context.ObjectType == typeof(MyType))
        {
            return CreateSchemaWithFormat(context.ObjectType, context.Required);
        }
        return null;
    }

    private JSchema CreateSchemaWithFormat(Type type, Required required)
    {
        JSchemaGenerator generator = new JSchemaGenerator();
        JSchema schema = generator.Generate(type, required != Required.Always);

        return schema;
    }
}


Использование:

    public void ValidateSchema()
{
    JSchemaGenerator generator = new JSchemaGenerator();
    generator.GenerationProviders.Add(new CustomSchemaProvider());

    JSchema schema = generator.Generate(typeof(Building));
    Console.WriteLine(schema);
}

Не мог бы кто-нибудь взглянуть и подсказать, что я делаю неправильно и как получить правильную схему против {{}}? Я буду признателен за любую помощь.

0 Ответов