我有一个ODataPayloadValueConverter,我正在尝试将其添加到我的配置中
public class DateTimeValueLocaliser : ODataPayloadValueConverter {
public override object ConvertToPayloadValue(object value, IEdmTypeReference edmTypeReference)
{
if (value is DateTime)
{
return new DateTime();
}
else
{
return base.ConvertToPayloadValue(value, edmTypeReference);
}
} }
我的启动. cs
services.AddControllers(options =>
{
options.EnableEndpointRouting = false;
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
})
.SetCompatibilityVersion(CompatibilityVersion.Latest)
.AddNewtonsoftJson(opt =>
{
opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
opt.SerializerSettings.ContractResolver = new DefaultContractResolver();
opt.SerializerSettings.Formatting = Formatting.Indented;
}).AddOData(options =>
{
options.AddRouteComponents("odata", new MyODataModelBuilder().GetEdmModel());
});
services.AddMvcCore();
我应该如何以及在何处将有效载荷值转换器添加到配置中?我可以将其添加到模型构建器IEdmModel函数中吗?
1条答案
按热度按时间yfwxisqw1#
自.NET 5以来,这一点已发生变化,您现在可以在AddRouteComponents中进行设置
也请查看以下文章。NET核心Web API与ODATA序列化DateTime