首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将C#对象转换为IOpenApiAny

将C#对象转换为IOpenApiAny
EN

Stack Overflow用户
提问于 2019-12-06 01:14:59
回答 1查看 4.8K关注 0票数 6

我想设置OpenApiSchema.Example。这是一个IOpenApiAny

我可以将一个简单的c#对象转换/强制转换成一个现有的IOpenApiAny,例如。Microsoft.OpenApi.Any.OpenApiObject?或者,我需要在我的所有对象上实现接口。

示例

代码语言:javascript
复制
var schma = new Microsoft.OpenApi.Models.OpenApiSchema
{
    Example = new MyObject();//doesn't work, how can i cast it?
};

背景:我正在尝试创建一个Swashbuckle过滤器,它向请求和响应参数和模式添加示例。我正在使用即将推出的SwashBackle5.0(测试版),它使用OpenAPI.NET,所以我尝试使用它来创建我的过滤器。

EN

回答 1

Stack Overflow用户

发布于 2019-12-06 11:51:10

您的类MyObject需要实现IOpenApiAny,如下所示:

代码语言:javascript
复制
public class MyObject : IOpenApiAny
{
    // implement everything here that IOpenApiAny defines:

    public AnyType AnyType { get; }

    public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
    {
        // implementation
    }
}

如果您有很多这样的类,并且您可以为所有这些类提供一个通用的实现,那么您可以使用一个抽象基类并让所有具体的类继承它:

代码语言:javascript
复制
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
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59205532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档