【发布时间】:2019-04-07 01:00:07
【问题描述】:
我们目前正在重写我们多年前编写的 API 服务。我们正在使用 .Net Core 2.1 和 MVC 对其进行更新。搜索后我无法弄清楚或找到一些扭结。最大的一个是客户发送的枚举,是枚举描述。无论出于何种原因,程序员都在每个描述(A、B、C、D...等)中添加了一个字母,因此许多客户将这些字母作为其有效的枚举发送。现在它不起作用。我们不能更改名称,因为它也在使用中。而且我不能手动转换它(据我所知),因为 MVC 负责为我们的控制器序列化对象。
示例
public enum RentCode
{
[Description("")]
None = 0,
[Description("A")]
Buying = 1,
[Description("B")]
Renting= 2,
[Description("C")]
Own = 3,
[Description("D")]
Land = 4
}
我怎样才能得到它,以便 MVC 在序列化对象时处理数字、枚举值和描述?
【问题讨论】:
-
您确实需要修改您的问题以正确描述您的需求。在阅读了它和下面答案中的 cmets 之后,这真的与 asp.net 完全无关,与序列化有关(它不关心什么叫序列化,asp.net 或控制台或 winforms,它是无关紧要的) .
-
感谢您的建议,我修改了我的问题,希望它能更好地吸引愿意回答我问题的人。如果我知道解决方案是什么,我相信我可以更好地措辞,但因为我正在寻找答案,我不确定如果我是 .net47 或 .net 核心,解决方案是否会有所不同。或者如果我可以在启动时做一些事情,或者 MVC 内置的东西可以提供帮助。如果是这样,如果我有启动文件或 Global.asax 文件,知道哪个版本会改变。所以我很高兴知道这些现在不那么重要了……稍后投反对票。
-
所以 asp.net-core 使用 JSON.Net 来序列化对象。超级简单的方法就是使用EnumMember。
标签: c# asp.net-core-mvc asp.net-core-2.0 asp.net-core-webapi