代码之家  ›  专栏  ›  技术社区  ›  WickedW

带枚举的C#NSwag和swagger代码生成器

  •  2
  • WickedW  · 技术社区  · 7 年前

    我有一个.Net Core v2.1web API,它使用NSwag生成其夸张的Json。

    我有一个这样的响应模型-

    public class LoginResponse
    {
        public LoginResult LoginResult { get; set; }
    }
    
    public enum LoginResult
    {
        AwaitingEmailConfirmation = 0,
        Locked = 1,
        Failed = 2,
        Success = 3
    }
    

    "definitions":{  
    "LoginResponse":{  
       "type":"object",
       "additionalProperties":false,
       "required":[  
          "loginResult"
       ],
       "properties":{  
          "loginResult":{  
             "$ref":"#/definitions/LoginResult"
          }
       }
    },
    "LoginResult":{  
       "type":"integer",
       "description":"",
       "x-enumNames":[  
          "AwaitingEmailConfirmation",
          "Locked",
          "Failed",
          "Success"
       ],
       "enum":[  
          0,
          1,
          2,
          3
       ]
    },
    

    在JSON上运行swagger codegen时,我在IO.swagger项目中为C#(选择了targetFramework 5.0)获得了以下LoginResult模型-

    [JsonConverter(typeof(StringEnumConverter))]
    
    public enum LoginResult
    {
    
        /// <summary>
        /// Enum _0 for value: 0
        /// </summary>
        [EnumMember(Value = "0")]
        _0 = 1,
    
        /// <summary>
        /// Enum _1 for value: 1
        /// </summary>
        [EnumMember(Value = "1")]
        _1 = 2,
    
        /// <summary>
        /// Enum _2 for value: 2
        /// </summary>
        [EnumMember(Value = "2")]
        _2 = 3,
    
        /// <summary>
        /// Enum _3 for value: 3
        /// </summary>
        [EnumMember(Value = "3")]
        _3 = 4
      }
    
    }
    

    有人能帮我描述一下如何使用与IO.Swagger使用Swagger codegen生成的客户机代码中的原始LoginResult模型相同的名称生成枚举吗?

    0 回复  |  直到 7 年前