NET Core 2.0 Swagger和枚举显示

问题描述

我有一个枚举:

<messageBuilders>
..
<messageBuilder contentType="application/hal+json"                                   
  class="org.wso2.carbon.integrator.core.json.JsonStreamBuilder"/>
..
</messageBuilders>

接下来我要实现:

显示每个枚举的描述 显示枚举键和值。

我使用了下一篇文章:swagger-ui-web-api-documentation-present-enums-as-strings

我做了下一个代码更改: 在枚举中,我定义了:

public enum DataTypes { [Description("All")] All,Man,Woman }

已在ConfigureServices中添加

[JsonConverter(typeof(StringEnumConverter))] //this is using newton
    public enum DataTypes
    {
        [Description("All")]
        All,[Description("Male222")]
        Male,[Description("Female")]
       Female
    }

在我使用过的Enum模型中:

services.AddMvc().AddJsonoptions(options =>
            options.SerializerSettings.Converters.Add(new StringEnumConverter()));
//and also  services.AddSwaggerGen(c =>            {
            c.SwaggerDoc("v1",new Info { Title = "My API",Version = "v1" });
            c.DescribeAllEnumsAsstrings();
        });

我看到的唯一变化是[0,1,2]和现在的[All,Male,Female] 我会错过一些设置吗?

更新: 我在每个枚举值上方添加

[EnumDataType(typeof(Constans.DataTypes))]
    [JsonConverter(typeof(StringEnumConverter))]
    public Constans.DataTypes DataType;

并替换为:

[Description("None enum descriptiondd")]
    [EnumMember(Value = "None")]

对于EnumDocumentFilter类,我使用了来自 swagger-ui-web-api-documentation-present-enums-as-strings

但是我得到了错误

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)