我发现一个问题,我向控制器传递了一个超出枚举范围的int,但是 JsonConvert.DeserializeObject 仍然映射到传递的int。
例如,我传入int 9以映射到下面的AvatarEnum,然后当我查看生成的模型时,我看到 DefaultAvatar = 9 ,尽管AvatarEnum显然只是达到5
我有这个基本的枚举:
public enum AvatarEnum : int
{
Unknown = 0,
Balloon = 1,
Flower = 2,
Sand = 3,
Bubbles = 4,
Seaweed = 5
}
包含枚举的简单模型:
internal class DefaultAvatarModel
{
public AvatarEnum DefaultAvatar { get; set; }
}
JSON反序列化:
try
{
avatarModel = JsonConvert.DeserializeObject<DefaultAvatarModel>(jsonMessage);
}
catch (JsonSerializationException)
{
return Request.CreateResponse(HttpStatusCode.BadRequest, "Bad JSON request.");
}
所以我传入:
jsonMessage = "{\"DefaultAvatar\":\"9\"}"
结果是:
avatarModel.DefaultAvatar == 9