programing

IMvcBuilder AddJsonOptions는 어디에서 사용되었습니까?Net Core 3.0?

padding 2023. 6. 2. 20:13
반응형

IMvcBuilder AddJsonOptions는 어디에서 사용되었습니까?Net Core 3.0?

ASP 웹 API 프로젝트를 에서 업그레이드했습니다.Net core 2.0로.3.0사용하고 있었습니다.

     services.AddMvc()
             .AddJsonOptions(options =>options.SerializerSettings.ContractResolver 
                                       = new DefaultContractResolver());

이전에는 직렬화된 JSON의 낮은 케이스를 보장했습니다.

3.0으로 업그레이드한 후 다음 오류가 발생합니다.

오류 CS1061 'IMvcBuilder'에 'AddJsonOptions'에 대한 정의가 없고 '유형'의 첫 번째 인수를 허용하는 액세스 가능한 확장 메서드 'AddJsonOptions'이(가) 없습니다.IMvcBuilder'를 찾을 수 있습니다(사용 지침 또는 어셈블리 참조가 누락되었습니까?).

As의 MvcJson 옵션에 대한 추가Json 옵션에 따라.NetCore 2.2 AddJsonOptions 확장 방법은 Microsoft에서 제공합니다.AsNetCore.MVC 포맷터.Json nuget 패키지.설치/재설치를 시도했지만 여전히 방법을 해결할 수 없습니다.흥미롭게도, 인텔리센스는 마이크로소프트만을 보여줍니다.AsNetCore.MVC 포맷터.Json nuget 패키지를 추가했는데도 사용명세서를 추가하려고 할 때 Xml.

무슨 일이 일어나고 있는지 아십니까?AddJsonOptions에 대한 설명서는 에서만 참조할 수 있습니다.Net 2.2 그럼 이 방법은 다른 구성 메커니즘을 선호하여 3.0에서 더 이상 사용되지 않는 것이 아닐까요?

ASP.NET Core 3.0의 일부로서, 팀은 Json을 포함하는 것에서 벗어났습니다.기본적으로 NET.이에 대한 자세한 내용은 일반적으로 Microsoft 변경 사항에 대한 발표에서 확인할 수 있습니다.AsNetCore..

Json.NET 대신 ASP.NET Core 3.0 및 .NET Core 3.0에는 성능에 좀 더 중점을 둔 다른 JSON API가 포함되어 있습니다.이에 대한 자세한 내용은 "의 JSON의 미래"에 대한 발표에서 확인할 수 있습니다.NET Core 3.0”.

ASP.NET Core의 새 템플릿은 더 이상 Json과 함께 번들되지 않습니다.NET 그러나 새 JSON 라이브러리 대신 사용하도록 프로젝트를 쉽게 재구성할 수 있습니다.이는 이전 프로젝트와의 호환성과 새 라이브러리가 전체 대체 라이브러리가 아니기 때문에 전체 기능 집합을 볼 수 없기 때문에 중요합니다.

Json을 사용하여 ASP.NET Core 3.0 프로젝트를 재구성하려면 다음과 같이 하십시오.NET, 다음에 NuGet 참조를 추가해야 합니다.Microsoft.AspNetCore.Mvc.NewtonsoftJson필요한 모든 비트가 포함된 패키지입니다.그러면 스타트업의ConfigureServices다음과 같이 MVC를 구성해야 합니다.

services.AddControllers()
    .AddNewtonsoftJson();

그러면 MVC 컨트롤러가 설정되고 Json을 사용하도록 구성됩니다.새로운 API 대신 NET을 사용합니다.컨트롤러 대신 다른 MVC 오버로드를 사용할 수도 있습니다(예: 뷰가 있는 컨트롤러 또는 레이저 페이지). ㅠㅠAddNewtonsoftJson메서드에는 Json을 구성할 수 있는 오버로드가 있습니다.기존과 같은 NET 옵션AddJsonOptions Corex.ASP.NET Core 2.x 파일입니다.

services.AddControllers()
    .AddNewtonsoftJson(options =>
    {
        options.SerializerSettings.ContractResolver = new DefaultContractResolver();
    });

이것은 제게 효과가 있었습니다, 사용하는 동안..Net Core 3:

services.AddMvc().AddJsonOptions(o =>
{
    o.JsonSerializerOptions.PropertyNamingPolicy = null;
    o.JsonSerializerOptions.DictionaryKeyPolicy = null;
});

마이크로소프트를 설치했는지 확인합니다.AsNetCore.Mvc.NewtonsoftJson 패키지.

여기에 이미지 설명 입력

이것은 저를 위한 작업입니다. NuGet의 "도트넷 추가 패키지 Microsoft"에서 NewtonsoftJson 패키지를 설치합니다.AsNetCore.Mvc.NewtonsoftJson --ASP.NET Core 3.0에서 작동하는 버전 3.1.0" 버전 3.1.0이며 다음 코드를 사용합니다.

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
    .AddNewtonsoftJson(opt => {
        opt.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
    });

잘 작동하길 바랍니다, 감사합니다.

이것은 도움이 될 것입니다.

public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers().AddJsonOptions(options=> {  options.JsonSerializerOptions.PropertyNamingPolicy = null;
                 options.JsonSerializerOptions.DictionaryKeyPolicy = null;

            });

            services.AddDbContext<PaymentDetailContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DevConnection")));
        }

이렇게 하면 Nuget 패키지를 설치하는 데 도움이 됩니다.

마이크로소프트.AsNetCore.Mvc.뉴턴소프트제이슨

이것은 사용하는 동안 저에게 효과가 있었습니다.Net Core 3: 여기를 클릭합니다.

언급URL : https://stackoverflow.com/questions/55666826/where-did-imvcbuilder-addjsonoptions-go-in-net-core-3-0

반응형