From 83d405dae904c25f05bd3ce2fcdc4f8984a744e0 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Thu, 13 Jan 2022 20:47:21 +0000 Subject: [PATCH 1/4] Add ConfigureHttpJsonOptions for M.A.Htt.Json.JsonOptions --- .../src/HttpJsonServiceExtensions.cs | 30 +++++++++++++++++++ .../src/PublicAPI.Unshipped.txt | 2 ++ 2 files changed, 32 insertions(+) create mode 100644 src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs diff --git a/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs b/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs new file mode 100644 index 000000000000..ad2ae3f87a86 --- /dev/null +++ b/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs @@ -0,0 +1,30 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.AspNetCore.Http.Json; +using Microsoft.Extensions.DependencyInjection; + +namespace Microsoft.AspNetCore.Http; + +/// +/// Extension methods to configure JSON serialization behavior. +/// +public static class HttpJsonServiceExtensions +{ + /// + /// Configures options used for reading and writing JSON by route handlers. + /// + /// + /// The options configured here will only affect JSON returned and processed + /// from route handlers, not controllers. + /// + /// The to configure options on. + /// The to configure the + /// . + /// The modified . + public static IServiceCollection ConfigureHttpJsonOptions(this IServiceCollection services, Action configureOptions) + { + services.Configure(configureOptions); + return services; + } +} diff --git a/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt b/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt index 7dc5c58110bf..5f38df127f40 100644 --- a/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt +++ b/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt @@ -1 +1,3 @@ #nullable enable +Microsoft.AspNetCore.Http.HttpJsonServiceExtensions +static Microsoft.AspNetCore.Http.HttpJsonServiceExtensions.ConfigureHttpJsonOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action! configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! From 3afbcded0170a7b7afd9ad6f8f1a40e7e37924db Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Wed, 19 Jan 2022 05:19:04 +0000 Subject: [PATCH 2/4] Address initial feedback from API review --- .../Http.Extensions/src/HttpJsonServiceExtensions.cs | 12 +++++++----- src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs b/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs index ad2ae3f87a86..ad7865d06dd2 100644 --- a/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs +++ b/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs @@ -2,27 +2,29 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.AspNetCore.Http.Json; -using Microsoft.Extensions.DependencyInjection; -namespace Microsoft.AspNetCore.Http; +namespace Microsoft.Extensions.DependencyInjection; /// /// Extension methods to configure JSON serialization behavior. /// -public static class HttpJsonServiceExtensions +public static class RouteHandlerJsonServiceExtensions { +#pragma warning disable CS0419 // Ambiguous reference in cref attribute /// /// Configures options used for reading and writing JSON by route handlers. /// /// /// The options configured here will only affect JSON returned and processed - /// from route handlers, not controllers. + /// from route handlers, not controllers, when using + /// and . /// /// The to configure options on. /// The to configure the /// . /// The modified . - public static IServiceCollection ConfigureHttpJsonOptions(this IServiceCollection services, Action configureOptions) +#pragma warning restore CS0419 // Ambiguous reference in cref attribute + public static IServiceCollection ConfigureRouteHandlerJsonOptions(this IServiceCollection services, Action configureOptions) { services.Configure(configureOptions); return services; diff --git a/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt b/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt index 5f38df127f40..1030d0f0793e 100644 --- a/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt +++ b/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt @@ -1,3 +1,3 @@ #nullable enable -Microsoft.AspNetCore.Http.HttpJsonServiceExtensions -static Microsoft.AspNetCore.Http.HttpJsonServiceExtensions.ConfigureHttpJsonOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action! configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +Microsoft.Extensions.DependencyInjection.RouteHandlerJsonServiceExtensions +static Microsoft.Extensions.DependencyInjection.RouteHandlerJsonServiceExtensions.ConfigureRouteHandlerJsonOptions(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action! configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! From 567d04686d3202f862a7ae62a1056ab48f7ee252 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Thu, 20 Jan 2022 20:02:37 +0000 Subject: [PATCH 3/4] Fix method reference in doc comment --- src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs b/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs index ad7865d06dd2..8fcf0378cd76 100644 --- a/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs +++ b/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs @@ -16,7 +16,7 @@ public static class RouteHandlerJsonServiceExtensions /// /// /// The options configured here will only affect JSON returned and processed - /// from route handlers, not controllers, when using + /// from route handlers, not controllers, when using /// and . /// /// The to configure options on. From eeca3a5e26a8ce4539212d715d1a35383d19e2c1 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Thu, 20 Jan 2022 21:55:46 +0000 Subject: [PATCH 4/4] Fix up crefs --- src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs b/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs index 8fcf0378cd76..75ceafdb0ac7 100644 --- a/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs +++ b/src/Http/Http.Extensions/src/HttpJsonServiceExtensions.cs @@ -10,20 +10,18 @@ namespace Microsoft.Extensions.DependencyInjection; /// public static class RouteHandlerJsonServiceExtensions { -#pragma warning disable CS0419 // Ambiguous reference in cref attribute /// /// Configures options used for reading and writing JSON by route handlers. /// /// /// The options configured here will only affect JSON returned and processed - /// from route handlers, not controllers, when using - /// and . + /// from route handlers, not controllers, when using + /// and . /// /// The to configure options on. /// The to configure the /// . /// The modified . -#pragma warning restore CS0419 // Ambiguous reference in cref attribute public static IServiceCollection ConfigureRouteHandlerJsonOptions(this IServiceCollection services, Action configureOptions) { services.Configure(configureOptions);