可以将我的枚举字符串动态反序列化为枚举。
在我的API和使用我的API的应用程序中,我有此类。
public static class ErrorCodes
{
public enum General
{
INCORRECT_PASSWORD,
INCORRECT_USERNAME,
INVALID_USERNAME
}
public enum ERRORTYPE_1
{
DATESPAN_NOT_PERMITTED
}
public enum ERRORTYPE_2
{
PERIOD_NOT_ALLOWED
}
}
在我的API中,我有这个。这就是以JSON形式发送回我的应用程序的内容。
public class Error
{
public string Message { get; set; }
public Enum Code { get; set; }
public Error() { }
public Error(Enum code)
{
this.Code = code;
}
public Error(string message, Enum code)
{
this.Message = message;
this.Code = code;
}
}
然后,我可以像这样返回我的错误。
new Error(ErrorCodes.ERRORTYPE_2.PERIOD_NOT_ALLOWED)
有没有办法让我的枚举分开?我觉得枚举错误代码的清单很长,不是很干净或无法维护。
这篇博客文章几乎是我想要做的,但是具有更多的枚举。https://bytefish.de/blog/enums_json_net/
是否可以将我的枚举字符串动态反序列化为枚举?
如果您要在dotnet-core上构建Web API项目,则链接到的博客中的解决方案效果很好,尽管我会使用标准System.Text.Json
库(从core 3.0开始):
using System.Text.Json.Serialization;
namespace Foobar
{
[JsonConverter(typeof(JsonStringEnumConverter))]
public enum Foo
{
Bar = 0,
Baz = 1
}
}
这会将枚举Foo.Bar
转换"Bar"
为客户端和"Bar" -> Foo.Bar
服务器上的枚举。
有没有办法让我的枚举分开?我觉得枚举错误代码的清单很长,不是很干净或无法维护。
我不知道我是否可以回答这一部分,因为看来您已经使用类结构完成了这一部分。我对您提供的代码是目标还是当前的代码感到困惑。
有关枚举的序列化和反序列化的更多信息,请查看这篇文章。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句