【问题标题】:Deserializing a model from an api that contains Enums从包含枚举的 api 反序列化模型
【发布时间】:2014-06-21 21:01:42
【问题描述】:

我们正在使用 ASP.Net MVC 5 C# 开发一个 Web 应用程序,我很难为我的问题想出一个好的解决方案。

我们正在访问一个 api,它有几个枚举作为模型本身的文本(即“yes”、“no”、“notfound”、“na”)我希望有强类型枚举以整数形式存储在数据库中(我认为节省一点空间)当我们反序列化来自 api 的响应时,问题就出现了。在响应中,它将以文本形式出现(见上文),其中枚举将期待一个整数。

这是怎么做到的?我真的很讨厌在我没有尝试过任何东西但我的网络搜索没有任何结果的地方问问题。如果您需要任何代码,请告诉我,我将使用所需的部分更新问题。截至目前,该模型有几个强类型枚举,并且 api 正在返回枚举值的字符串。顺便说一下枚举文本和返回值是一样的。

以防万一我们也使用 EF Code First 6

【问题讨论】:

  • @LosManos 感谢您的链接。我已经知道 EF6 可以与枚举一起使用。我的问题是 api 响应的反序列化。它不会为枚举传输 int 。它返回枚举文本(是、否、NotFound 等)

标签: c# asp.net-mvc enums ef-code-first deserialization


【解决方案1】:

您可以使用Enum.TryParse 将字符串转换为其枚举值

public enum MyEnum
{
  NA
  Yes,
  No
}

然后

MyEnum value = MyEnum.NA;
Enum.TryParse<MyEnum>(theTextValue, out value );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 2019-05-31
    • 2015-07-26
    相关资源
    最近更新 更多