【发布时间】:2018-01-01 16:43:49
【问题描述】:
我发现这个不错type-safe enum pattern, 我觉得很酷。
该类确实只有公共静态属性和private constructor,并且可以从string 隐式推断。我将它用作我的模型的属性,当我传递string 时,它会在 asp.net 核心 Web api 控制器中正确获取model-binded。传递无效的string 值也可以正常工作,因为binder 能够设置ModelSate=false。我在这一行有一些东西:
class Mymodel
{
public TypeSafeEnum TypeSafeEnum { get; set; }
public string Name { get; set; }
// the rest of props
}
在一些 swagger api 文档中,该属性被视为一个对象,因此试图帮助的 swagger 将给出示例输入模型:
{
"typeSafeEnum": {},
"name": "string",
// the rest
}
大摇大摆的只是看到一个没有公共属性的对象。
有没有一种形式可以大摇大摆地告诉我我实际上期待的是string?还是我会欺骗我的客户,因为并非所有字符串值都有效?但是我又该如何提供有意义的提示呢?
【问题讨论】:
-
你是如何生成你的招摇文档的?如果您使用的是Swashbuckle.AspNetCore,那么此链接似乎是相关的:Override Schema for Specific Types。