gpt4 book ai didi

c# - 将 C# 对象转换为 IOpenApiAny

转载 作者:行者123 更新时间:2023-12-04 11:36:38 26 4
gpt4 key购买 nike

关闭。这个问题需要details or clarity .它目前不接受答案。












想改善这个问题吗?通过 editing this post 添加详细信息并澄清问题.

1年前关闭。




Improve this question




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

我可以将一个简单的 c# 对象转换/转换为现有的 IOpenApiAny , 前任。 Microsoft.OpenApi.Any.OpenApiObject ?或者我需要在我的所有对象上实现接口(interface)

示例

var schma = new Microsoft.OpenApi.Models.OpenApiSchema
{
Example = new MyObject();//doesn't work, how can i cast it?
};

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

最佳答案

您的类(class) MyObject需要实现 IOpenApiAny , 如下:

public class MyObject : IOpenApiAny
{
// implement everything here that IOpenApiAny defines:

public AnyType AnyType { get; }

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

如果你有很多这样的类,并且你可以为所有这些类提出一个通用的实现,那么你可以使用一个抽象基类并让所有的具体类继承它:
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
}

关于c# - 将 C# 对象转换为 IOpenApiAny,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59205532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com