Swashbuckle OperationFilter 添加类型对象的参数

Dun*_*imu 2 c# asp.net swashbuckle openapi

我有一个 C# 对象

public class MyObject
{
 public int property1 { get; set; }
 public string property2 { get; set; }
 public string property3 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个具有MyObject.

public class MyFilter : IOperationFilter
{
 public void Apply(OpenApiOperation operation, OperationFilterContext context)
 {
   operation.Parameters.Add(new OpenApiParameter
   {
    Name = "MyParameter",
    Description = "MyDescription"
    In = ParameterLocation.Header
    Required = true,
    Schema = new OpenApiSchema()
    {
     Type = "object",
     Properties = new Dictionary<string, OpenApiSchema>()
     {
       // MyObject
     }
    }
   }
  }
}
Run Code Online (Sandbox Code Playgroud)

Swashbuckle 是否提供任何可以自动生成具有MyObject.

Dun*_*imu 10

我找到了答案。

public class MyFilter : IOperationFilter
{
 public void Apply(OpenApiOperation operation, OperationFilterContext context)
 {
   var myObjectSchema = context.SchemaGenerator.GenerateSchema(typeof(MyObject), context.SchemaRepository);
   operation.Parameters.Add(new OpenApiParameter
   {
    Name = "MyParameter",
    Description = "MyDescription"
    In = ParameterLocation.Header
    Required = true,
    Schema = myObjectSchema
   }
  }
}
Run Code Online (Sandbox Code Playgroud)