c# - 在 http 请求上将字符串转换为枚举并自动设置
问题描述
我总是可以去做这里提到的事情。使用Enum.TryParse
但是我正在做的是将一个字符串传递给请求。然后在我的 Enum 类型的控制器上创建一个局部变量,以便我可以将 Enum 类型传递给我的服务方法以执行任务。我觉得如果我可以直接将它转换为请求的 set 属性上的 Enum 类型,那就太好了。
这是我目前拥有的:
public enum SearchSortType
{
None,
Rating,
Date,
Etc
}
[DataContract]
public class MyRequest
{
/// <summary>
/// The field to order on.
/// </summary>
/// <value>
/// The order by.
/// </value>
[DataMember(Name = "sortOn")]
public string SortOn { get; set; }
}
我想要的是跟随。我将继续从请求中发布字符串。
[DataContract]
public class MyRequest
{
/// <summary>
/// The field to order on.
/// </summary>
/// <value>
/// The order by.
/// </value>
[DataMember(Name = "sortOn")]
public SearchSortType SortOn { get; set; }
}
是否可以继续传递字符串并将其转换为 set 属性(或以任何其他方式转换为枚举,以便我不必创建局部变量并转换然后使用它?
解决方案
枚举是一种独特的类型,由一组称为枚举数列表的命名常量组成。您可以在请求中传递枚举,并在 Web api 上具有同名的枚举属性,.net 模型绑定器将自动将其绑定到枚举。在请求中发送枚举时,它将作为 Int 发送。
推荐阅读
- questdb - 从不同 IP 到 QuestDB 的同时读取限制?
- anychart - AnyGantt 阻止计算孩子的父母日期
- java - 如何将 gservice 帐户集成到 java 应用程序?
- vb.net - Graphics.DrawImage 似乎没有画出所有的形状
- java - 在 Swagger 注释中从 SpringBoot Yaml 配置文件中替换 ${...}
- python - 使用 Keras 进行手势识别,无法验证验证准确性
- java - 将文本文件读取到列表并将其分配给类属性
- mockito - 带有 springwebflux 平面图的 Mockito 静态模拟
- javascript - 通过对象属性javascript映射两个等效长度的数组
- xml - 如何按标签序列分组?