c# - ASP.NET Core 操作响应中的控制 Guid 格式
问题描述
假设我的 ASP.NET Core (API) 操作返回具有此属性的对象:
[WhatGoesHere("N")] // ?
public Guid MyGuid { get; set; }
它将被序列化为ffd76e47-609f-42bc-b6b8-b66dedab5561
.
我希望它被序列化为ffd76e47609f42bcb6b8b66dedab5561
. 在代码中是myGuid.ToString("N")
.
有没有我可以用来控制格式的属性?
解决方案
您可以实现自定义 JsonConverter,请参见此处。并配置您的 aspnet 核心应用程序以注册此 JsonConverter 以进行输出格式化。这样,每次您的应用程序将 Guid 序列化为 JSON 时,您都会以您想要的方式获得它:
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvc()
.AddJsonOptions(options => {
options.SerializerSettings.Converters.Add(new MyCustomConverter());
});
}
您还可以选择一些特定的类来使用转换器,而不是全部使用转换器,方法是在其之上使用此属性:
[JsonConverter(typeof(MyCustomConverter))]
public class MyClass
{
public Guid MyGuid { get;set; }
}
推荐阅读
- c - 获取GPU温度的C程序
- flutter - Flutter 硬件音量键检测?
- javascript - 使用节点 js API 在 React js 上的 Hyperledger Fabric 2.2 前端
- sql - 在 Oracle SQL 中不需要时使用嵌套查询有什么好处吗?
- c++ - 为什么反向迭代器与 std::reverse 然后迭代相比如此缓慢?
- javascript - 反应传单和反应传单绘制
- wso2 - 执行 wso2is REST API
- android - 多次调用实时数据观察者
- python - 如何将搜索到的每个项目的链接存储到列表中?
- javascript - 任务 - 濒危物种。如何解决这个问题呢?为什么我无法读取未定义的属性“长度”。问题描述如下