N T*_*N T 5 c# openapi .net-core-3.0
我想设置OpenApiSchema.Example. 这是一个IOpenApiAny.
我可以将一个简单的 c# 对象转换/转换为现有的IOpenApiAny,例如。Microsoft.OpenApi.Any.OpenApiObject? 或者我需要在我的所有对象上实现接口
例子
var schma = new Microsoft.OpenApi.Models.OpenApiSchema
{
Example = new MyObject();//doesn't work, how can i cast it?
};
Run Code Online (Sandbox Code Playgroud)
背景:我正在尝试创建一个 Swashbuckle 过滤器,它将示例添加到请求和响应参数和架构中。我正在使用即将推出的 Swashbuckle 5.0(测试版),它正在使用 OpenAPI.NET,所以我正在尝试使用它来创建我的过滤器。
您的班级MyObject需要实现IOpenApiAny,如下所示:
public class MyObject : IOpenApiAny
{
// implement everything here that IOpenApiAny defines:
public AnyType AnyType { get; }
public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
{
// implementation
}
}
Run Code Online (Sandbox Code Playgroud)
如果您有很多这样的类,并且可以为所有这些类提供一个通用的实现,那么您可以使用单个抽象基类并让所有具体类继承它:
public abstract class BaseObject : IOpenApiAny
{
// implement everything defined by IOpenApiAny (see above)
}
public class MyClass1 : BaseObject
{
// additional "MyClass1" methods/props
}
public class MyClass2 : BaseObject
{
// additional "MyClass2" methods/props
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2432 次 |
| 最近记录: |