簡體   English   中英

如何在使用 MinimalApi 時配置 json Name Case 策略

[英]How to configure json Name Case policy while using MinimalApi

我正在嘗試從我的最小 API 獲取結果,這些 API 在我的 MVC Web 應用程序的端點中配置,我的 Get 操作配置如下:

            endpoints.MapGet(
                "HO-CFDZU4/api/Currency/Get", 
                [PermissionAuthorize(PermissionName.ReadCurrencyDictionary)] 
                async ([FromServicesAttribute] CurrencyService curency) =>
            {
                var result = await DataSourceLoader.LoadAsync(curency.Get(), new DataSourceLoadOptions());

                return Results.Ok(result);
            });

結果,我得到了屬性名稱更改為小寫的對象的響應,它不適合我。 我想在相同的情況下獲得完全相同的名稱,就像我返回表單操作一樣。

為了在 MVC 中獲得類似的效果,我使用了這段代碼:

            services
            .AddMvc()
            .AddFluentValidation(x => x.RegisterValidatorsFromAssembly(AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName.Contains("ApplicationCore")).Single()))
            .AddMvcLocalization()
            .AddMvcOptions(options =>{})
            .AddRazorRuntimeCompilation()
            .AddJsonOptions(options =>
            {
                options.JsonSerializerOptions.PropertyNamingPolicy = null;
                options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
            });

在控制器中使用操作時為 Json 設置屬性命名策略,我不知道如何為 minimalApi 設置相同的策略。

我試過的是設置[JsonPropertyName(name)]並且效果很好,但我們有很多類,我正在尋找更全局的解決方案。

我還嘗試像這樣全局配置 JsonOptions:

        services.Configure<JsonOptions>(options =>
        {
            options.JsonSerializerOptions.PropertyNamingPolicy = null;
            options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
        });

但它什么都不做

使用Microsoft.AspNetCore.Http.Json命名空間( 文檔)中的JsonOptions

builder.Services.Configure<JsonOptions>(options =>
{
    options.SerializerOptions.PropertyNamingPolicy = null;
    options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM