我面临一个问题,需要一点帮助
我在webapi中有请求中有模型的请求
public HttpResponseMessage Update(MyRequest req)
class MyRequest{
public string UserName {get; set;}
public CustomEnum Type {get; set;}
}
Enum CustomEnum {
Registered ,
UnRegistered
}
问题在于我的请求我发送的枚举值不是CustomEnum的一部分,但是因为WEBAPI本身映射了值,它给了我一个未找到的例外
所以我想为什么不在请求到达时我自己就像
一样class MyRequest{
public string {get; set;}
public CustomEnum {
get {
if ( ??? = "NEWVALUE" ) ??? = "Registered";
return {???} ; set;}
}
问题是我无法得到??? get accessor中的这个值,有人可以帮助我如何获取它
答案 0 :(得分:0)
如果我正确理解了这个问题,那么您必须尝试将值绑定到CustomEnum
类型,这不是enum
的任何定义值 - 因此该值不能绑定到属性我认为,这是异常的原因。
我认为你可以做的事情就像:
class MyRequest{
public string UserName {get; set;}
public string Type {get; set;}
pulic CustomEnum? TypeAsEnum
{
get{
CustomEnum value;
return Enum.TryParse(typeof(CustomEnum), out value) ? value : (CustomEnum?)null;
}
}
}
然后我认为任何值都应该可绑定到Type属性(因为它是string
)并且您可以使用TypeAsEnum
属性来获取CustomEnum
类型值,如果Type
无法转换为CustomEnum
类型。在任何情况下,您仍然可以从Type
属性获取值的文本表示。