ShowProgramCode

2024年6月21日 星期五

C# .Net6 Json欄位大小寫依照物件屬性

一個小問題,Net Core6預設當物件轉為Json時,所有屬性名稱全小寫。
但是我希望能夠依照物件屬性名稱的設定,也就是多數首字大寫。

最後在Program.cs修改如下:

public class Program
{
    public static void Main(string[] args)
    {
        var builder = WebApplication.CreateBuilder(args);
        // Add services to the container.
        ...
        //setting json
        //System.Text.Json 在序列化的時候使用了 camelCase 的命名規範,這意味著首字母小寫。添加下列設定可以讓Json依照DTO屬性
        //AddNewtonsoftJson則是 Newtonsoft.Json 序列化器的設定方式
        builder.Services.AddControllers()
        .AddJsonOptions(options =>
        {
            // 或者使用 JsonNamingPolicy.CamelCase
            options.JsonSerializerOptions.PropertyNamingPolicy = null; 
        });
    
        builder.Services.AddControllers();
        ...
    }
}

C# Net6 WebAPI專案自動跳轉https

最近遇到一個小問題,依照需求專案放上IIS必須走http,但是.NetCore6又預設會跳轉到https。
造成我的前端連線過來時,因為沒有憑證而連線失敗。

最後,我在Program.cs把自動跳轉移除,並加入http設定如下:

public class Program
{
    public static void Main(string[] args)
    {
        var builder = WebApplication.CreateBuilder(args);
        // Add services to the container.

        builder.Services.AddControllers();
        ...

        var app = builder.Build();
        ...

        //設定http管道
        app.UseRouting();

        //註銷不轉向https
        //app.UseHttpsRedirection();

        app.UseAuthorization();

        app.MapControllers();

        app.Run();
    }
}