Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[main] Update dependencies from dotnet/runtime #47021

Merged
merged 7 commits into from
Mar 7, 2023
248 changes: 124 additions & 124 deletions eng/Version.Details.xml

Large diffs are not rendered by default.

124 changes: 62 additions & 62 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -63,69 +63,69 @@
-->
<PropertyGroup Label="Automated">
<!-- Packages from dotnet/runtime -->
<MicrosoftExtensionsDependencyModelVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsDependencyModelVersion>
<MicrosoftNETCoreAppRefVersion>8.0.0-preview.3.23152.1</MicrosoftNETCoreAppRefVersion>
<MicrosoftNETCoreAppRuntimewinx64Version>8.0.0-preview.3.23152.1</MicrosoftNETCoreAppRuntimewinx64Version>
<MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>8.0.0-preview.3.23152.1</MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>
<MicrosoftNETRuntimeWebAssemblySdkVersion>8.0.0-preview.3.23152.1</MicrosoftNETRuntimeWebAssemblySdkVersion>
<MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>8.0.0-preview.3.23152.1</MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>
<MicrosoftNETCoreBrowserDebugHostTransportVersion>8.0.0-preview.3.23152.1</MicrosoftNETCoreBrowserDebugHostTransportVersion>
<MicrosoftExtensionsCachingAbstractionsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsCachingAbstractionsVersion>
<MicrosoftExtensionsCachingMemoryVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsCachingMemoryVersion>
<MicrosoftExtensionsConfigurationAbstractionsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsConfigurationAbstractionsVersion>
<MicrosoftExtensionsConfigurationBinderVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsConfigurationBinderVersion>
<MicrosoftExtensionsConfigurationCommandLineVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsConfigurationCommandLineVersion>
<MicrosoftExtensionsConfigurationEnvironmentVariablesVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsConfigurationEnvironmentVariablesVersion>
<MicrosoftExtensionsConfigurationFileExtensionsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsConfigurationFileExtensionsVersion>
<MicrosoftExtensionsConfigurationIniVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsConfigurationIniVersion>
<MicrosoftExtensionsConfigurationJsonVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsConfigurationJsonVersion>
<MicrosoftExtensionsConfigurationVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsConfigurationVersion>
<MicrosoftExtensionsConfigurationUserSecretsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsConfigurationUserSecretsVersion>
<MicrosoftExtensionsConfigurationXmlVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsConfigurationXmlVersion>
<MicrosoftExtensionsDependencyInjectionAbstractionsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsDependencyInjectionAbstractionsVersion>
<MicrosoftExtensionsDependencyInjectionVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsDependencyInjectionVersion>
<MicrosoftExtensionsFileProvidersAbstractionsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsFileProvidersAbstractionsVersion>
<MicrosoftExtensionsFileProvidersCompositeVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsFileProvidersCompositeVersion>
<MicrosoftExtensionsFileProvidersPhysicalVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsFileProvidersPhysicalVersion>
<MicrosoftExtensionsFileSystemGlobbingVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsFileSystemGlobbingVersion>
<MicrosoftExtensionsHostFactoryResolverSourcesVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsHostFactoryResolverSourcesVersion>
<MicrosoftExtensionsHostingAbstractionsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsHostingAbstractionsVersion>
<MicrosoftExtensionsHostingVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsHostingVersion>
<MicrosoftExtensionsHttpVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsHttpVersion>
<MicrosoftExtensionsLoggingAbstractionsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsLoggingAbstractionsVersion>
<MicrosoftExtensionsLoggingConfigurationVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsLoggingConfigurationVersion>
<MicrosoftExtensionsLoggingConsoleVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsLoggingConsoleVersion>
<MicrosoftExtensionsLoggingDebugVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsLoggingDebugVersion>
<MicrosoftExtensionsLoggingEventSourceVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsLoggingEventSourceVersion>
<MicrosoftExtensionsLoggingEventLogVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsLoggingEventLogVersion>
<MicrosoftExtensionsLoggingVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsLoggingVersion>
<MicrosoftExtensionsLoggingTraceSourceVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsLoggingTraceSourceVersion>
<MicrosoftExtensionsOptionsConfigurationExtensionsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsOptionsConfigurationExtensionsVersion>
<MicrosoftExtensionsOptionsDataAnnotationsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsOptionsDataAnnotationsVersion>
<MicrosoftExtensionsOptionsVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsOptionsVersion>
<MicrosoftExtensionsPrimitivesVersion>8.0.0-preview.3.23152.1</MicrosoftExtensionsPrimitivesVersion>
<MicrosoftInternalRuntimeAspNetCoreTransportVersion>8.0.0-preview.3.23152.1</MicrosoftInternalRuntimeAspNetCoreTransportVersion>
<SystemConfigurationConfigurationManagerVersion>8.0.0-preview.3.23152.1</SystemConfigurationConfigurationManagerVersion>
<SystemDiagnosticsDiagnosticSourceVersion>8.0.0-preview.3.23152.1</SystemDiagnosticsDiagnosticSourceVersion>
<SystemDiagnosticsEventLogVersion>8.0.0-preview.3.23152.1</SystemDiagnosticsEventLogVersion>
<SystemDirectoryServicesProtocolsVersion>8.0.0-preview.3.23152.1</SystemDirectoryServicesProtocolsVersion>
<SystemIOPipelinesVersion>8.0.0-preview.3.23152.1</SystemIOPipelinesVersion>
<SystemNetHttpJsonVersion>8.0.0-preview.3.23152.1</SystemNetHttpJsonVersion>
<SystemNetHttpWinHttpHandlerVersion>8.0.0-preview.3.23152.1</SystemNetHttpWinHttpHandlerVersion>
<SystemReflectionMetadataVersion>8.0.0-preview.3.23152.1</SystemReflectionMetadataVersion>
<SystemResourcesExtensionsVersion>8.0.0-preview.3.23152.1</SystemResourcesExtensionsVersion>
<SystemSecurityCryptographyPkcsVersion>8.0.0-preview.3.23152.1</SystemSecurityCryptographyPkcsVersion>
<SystemSecurityCryptographyXmlVersion>8.0.0-preview.3.23152.1</SystemSecurityCryptographyXmlVersion>
<SystemSecurityPermissionsVersion>8.0.0-preview.3.23152.1</SystemSecurityPermissionsVersion>
<SystemServiceProcessServiceControllerVersion>8.0.0-preview.3.23152.1</SystemServiceProcessServiceControllerVersion>
<SystemTextEncodingsWebVersion>8.0.0-preview.3.23152.1</SystemTextEncodingsWebVersion>
<SystemTextJsonVersion>8.0.0-preview.3.23152.1</SystemTextJsonVersion>
<SystemThreadingAccessControlVersion>8.0.0-preview.3.23152.1</SystemThreadingAccessControlVersion>
<SystemThreadingChannelsVersion>8.0.0-preview.3.23152.1</SystemThreadingChannelsVersion>
<SystemThreadingRateLimitingVersion>8.0.0-preview.3.23152.1</SystemThreadingRateLimitingVersion>
<MicrosoftExtensionsDependencyModelVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsDependencyModelVersion>
<MicrosoftNETCoreAppRefVersion>8.0.0-preview.3.23155.6</MicrosoftNETCoreAppRefVersion>
<MicrosoftNETCoreAppRuntimewinx64Version>8.0.0-preview.3.23155.6</MicrosoftNETCoreAppRuntimewinx64Version>
<MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>8.0.0-preview.3.23155.6</MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>
<MicrosoftNETRuntimeWebAssemblySdkVersion>8.0.0-preview.3.23155.6</MicrosoftNETRuntimeWebAssemblySdkVersion>
<MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>8.0.0-preview.3.23155.6</MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>
<MicrosoftNETCoreBrowserDebugHostTransportVersion>8.0.0-preview.3.23155.6</MicrosoftNETCoreBrowserDebugHostTransportVersion>
<MicrosoftExtensionsCachingAbstractionsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsCachingAbstractionsVersion>
<MicrosoftExtensionsCachingMemoryVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsCachingMemoryVersion>
<MicrosoftExtensionsConfigurationAbstractionsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsConfigurationAbstractionsVersion>
<MicrosoftExtensionsConfigurationBinderVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsConfigurationBinderVersion>
<MicrosoftExtensionsConfigurationCommandLineVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsConfigurationCommandLineVersion>
<MicrosoftExtensionsConfigurationEnvironmentVariablesVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsConfigurationEnvironmentVariablesVersion>
<MicrosoftExtensionsConfigurationFileExtensionsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsConfigurationFileExtensionsVersion>
<MicrosoftExtensionsConfigurationIniVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsConfigurationIniVersion>
<MicrosoftExtensionsConfigurationJsonVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsConfigurationJsonVersion>
<MicrosoftExtensionsConfigurationVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsConfigurationVersion>
<MicrosoftExtensionsConfigurationUserSecretsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsConfigurationUserSecretsVersion>
<MicrosoftExtensionsConfigurationXmlVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsConfigurationXmlVersion>
<MicrosoftExtensionsDependencyInjectionAbstractionsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsDependencyInjectionAbstractionsVersion>
<MicrosoftExtensionsDependencyInjectionVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsDependencyInjectionVersion>
<MicrosoftExtensionsFileProvidersAbstractionsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsFileProvidersAbstractionsVersion>
<MicrosoftExtensionsFileProvidersCompositeVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsFileProvidersCompositeVersion>
<MicrosoftExtensionsFileProvidersPhysicalVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsFileProvidersPhysicalVersion>
<MicrosoftExtensionsFileSystemGlobbingVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsFileSystemGlobbingVersion>
<MicrosoftExtensionsHostFactoryResolverSourcesVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsHostFactoryResolverSourcesVersion>
<MicrosoftExtensionsHostingAbstractionsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsHostingAbstractionsVersion>
<MicrosoftExtensionsHostingVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsHostingVersion>
<MicrosoftExtensionsHttpVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsHttpVersion>
<MicrosoftExtensionsLoggingAbstractionsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsLoggingAbstractionsVersion>
<MicrosoftExtensionsLoggingConfigurationVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsLoggingConfigurationVersion>
<MicrosoftExtensionsLoggingConsoleVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsLoggingConsoleVersion>
<MicrosoftExtensionsLoggingDebugVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsLoggingDebugVersion>
<MicrosoftExtensionsLoggingEventSourceVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsLoggingEventSourceVersion>
<MicrosoftExtensionsLoggingEventLogVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsLoggingEventLogVersion>
<MicrosoftExtensionsLoggingVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsLoggingVersion>
<MicrosoftExtensionsLoggingTraceSourceVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsLoggingTraceSourceVersion>
<MicrosoftExtensionsOptionsConfigurationExtensionsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsOptionsConfigurationExtensionsVersion>
<MicrosoftExtensionsOptionsDataAnnotationsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsOptionsDataAnnotationsVersion>
<MicrosoftExtensionsOptionsVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsOptionsVersion>
<MicrosoftExtensionsPrimitivesVersion>8.0.0-preview.3.23155.6</MicrosoftExtensionsPrimitivesVersion>
<MicrosoftInternalRuntimeAspNetCoreTransportVersion>8.0.0-preview.3.23155.6</MicrosoftInternalRuntimeAspNetCoreTransportVersion>
<SystemConfigurationConfigurationManagerVersion>8.0.0-preview.3.23155.6</SystemConfigurationConfigurationManagerVersion>
<SystemDiagnosticsDiagnosticSourceVersion>8.0.0-preview.3.23155.6</SystemDiagnosticsDiagnosticSourceVersion>
<SystemDiagnosticsEventLogVersion>8.0.0-preview.3.23155.6</SystemDiagnosticsEventLogVersion>
<SystemDirectoryServicesProtocolsVersion>8.0.0-preview.3.23155.6</SystemDirectoryServicesProtocolsVersion>
<SystemIOPipelinesVersion>8.0.0-preview.3.23155.6</SystemIOPipelinesVersion>
<SystemNetHttpJsonVersion>8.0.0-preview.3.23155.6</SystemNetHttpJsonVersion>
<SystemNetHttpWinHttpHandlerVersion>8.0.0-preview.3.23155.6</SystemNetHttpWinHttpHandlerVersion>
<SystemReflectionMetadataVersion>8.0.0-preview.3.23155.6</SystemReflectionMetadataVersion>
<SystemResourcesExtensionsVersion>8.0.0-preview.3.23155.6</SystemResourcesExtensionsVersion>
<SystemSecurityCryptographyPkcsVersion>8.0.0-preview.3.23155.6</SystemSecurityCryptographyPkcsVersion>
<SystemSecurityCryptographyXmlVersion>8.0.0-preview.3.23155.6</SystemSecurityCryptographyXmlVersion>
<SystemSecurityPermissionsVersion>8.0.0-preview.3.23155.6</SystemSecurityPermissionsVersion>
<SystemServiceProcessServiceControllerVersion>8.0.0-preview.3.23155.6</SystemServiceProcessServiceControllerVersion>
<SystemTextEncodingsWebVersion>8.0.0-preview.3.23155.6</SystemTextEncodingsWebVersion>
<SystemTextJsonVersion>8.0.0-preview.3.23155.6</SystemTextJsonVersion>
<SystemThreadingAccessControlVersion>8.0.0-preview.3.23155.6</SystemThreadingAccessControlVersion>
<SystemThreadingChannelsVersion>8.0.0-preview.3.23155.6</SystemThreadingChannelsVersion>
<SystemThreadingRateLimitingVersion>8.0.0-preview.3.23155.6</SystemThreadingRateLimitingVersion>
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
<MicrosoftNETCorePlatformsVersion>8.0.0-preview.3.23152.1</MicrosoftNETCorePlatformsVersion>
<MicrosoftBclAsyncInterfacesVersion>8.0.0-preview.3.23152.1</MicrosoftBclAsyncInterfacesVersion>
<MicrosoftNETCorePlatformsVersion>8.0.0-preview.3.23155.6</MicrosoftNETCorePlatformsVersion>
<MicrosoftBclAsyncInterfacesVersion>8.0.0-preview.3.23155.6</MicrosoftBclAsyncInterfacesVersion>
<!-- Packages from dotnet/efcore -->
<dotnetefVersion>8.0.0-preview.3.23152.4</dotnetefVersion>
<MicrosoftEntityFrameworkCoreInMemoryVersion>8.0.0-preview.3.23152.4</MicrosoftEntityFrameworkCoreInMemoryVersion>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,13 @@ private static Task WriteToResponseAsync<T>(T? value, HttpContext httpContext, J
return T.BindAsync(context, parameter);
}
}

{{GeneratedCodeAttribute}}
file static class ParsableHelper<T> where T : IParsable<T>
{
public static T Parse(string s, IFormatProvider? provider) => T.Parse(s, provider);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When do we ever call the Parse method?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not strictly needed. We'd probably be fine code-genning something lighter like TryParseExplicit.

Also, I had forgotten that these Maestro PRs automerge once the build is green. 🤦🏽‍♀️ I'll have to address your feedback in a follow-up.

public static bool TryParse(string? s, IFormatProvider? provider, [MaybeNullWhen(returnValue: false)] out T result) => T.TryParse(s, provider, out result);
}
}
""";
private static string GetGenericThunks(string genericThunks) => genericThunks != string.Empty ? $$"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ private bool TryGetParsability(IParameterSymbol parameter, WellKnownTypes wellKn
// which method was encountered.
Func<string, string, string>? preferredTryParseInvocation = parsabilityMethod switch
{
ParsabilityMethod.IParsable => (string inputArgument, string outputArgument) => $$"""{{parameterType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}}.TryParse({{inputArgument}}!, CultureInfo.InvariantCulture, out var {{outputArgument}})""",
ParsabilityMethod.IParsable => (string inputArgument, string outputArgument) => $$"""ParsableHelper<{{parameterType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}}>.TryParse({{inputArgument}}!, CultureInfo.InvariantCulture, out var {{outputArgument}})""",
ParsabilityMethod.TryParseWithFormatProvider => (string inputArgument, string outputArgument) => $$"""{{parameterType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}}.TryParse({{inputArgument}}!, CultureInfo.InvariantCulture, out var {{outputArgument}})""",
ParsabilityMethod.TryParse => (string inputArgument, string outputArgument) => $$"""{{parameterType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}}.TryParse({{inputArgument}}!, out var {{outputArgument}})""",
ParsabilityMethod.Enum => (string inputArgument, string outputArgument) => $$"""Enum.TryParse<{{parameterType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}}>({{inputArgument}}!, out var {{outputArgument}})""",
Expand Down
6 changes: 3 additions & 3 deletions src/Http/Http.Extensions/src/RequestDelegateFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -819,10 +819,10 @@ private static Expression CreateArgument(ParameterInfo parameter, RequestDelegat
return BindParameterFromRouteValueOrQueryString(parameter, parameter.Name, factoryContext);
}
else if (factoryContext.DisableInferredFromBody && (
(parameter.ParameterType.IsArray && ParameterBindingMethodCache.HasTryParseMethod(parameter.ParameterType.GetElementType()!)) ||
parameter.ParameterType == typeof(string[]) ||
parameter.ParameterType == typeof(string[]) ||
parameter.ParameterType == typeof(StringValues) ||
parameter.ParameterType == typeof(StringValues?)))
parameter.ParameterType == typeof(StringValues?) ||
(parameter.ParameterType.IsArray && ParameterBindingMethodCache.HasTryParseMethod(parameter.ParameterType.GetElementType()!))))
{
// We only infer parameter types if you have an array of TryParsables/string[]/StringValues/StringValues?, and DisableInferredFromBody is true

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1723,4 +1723,11 @@ namespace Microsoft.AspNetCore.Http.Generated
return T.BindAsync(context, parameter);
}
}

%GENERATEDCODEATTRIBUTE%
file static class ParsableHelper<T> where T : IParsable<T>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we only generate this when we have to?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it should be fine as a stop gap, I think we should actually try to get the runtime to extend IParsable<T> with the following method:

public static bool TryParseExplicit<T>(string? s, IFormatProvider? provider, out T result) where T: IParsable<T>
{
  return T.TryParse(s, provider, out result!);
}

Just so people have a simple way of calling the explicit interface without having to write boilerplate like the above everywhere.

{
public static T Parse(string s, IFormatProvider? provider) => T.Parse(s, provider);
public static bool TryParse(string? s, IFormatProvider? provider, [MaybeNullWhen(returnValue: false)] out T result) => T.TryParse(s, provider, out result);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -332,4 +332,11 @@ namespace Microsoft.AspNetCore.Http.Generated
return T.BindAsync(context, parameter);
}
}

%GENERATEDCODEATTRIBUTE%
file static class ParsableHelper<T> where T : IParsable<T>
{
public static T Parse(string s, IFormatProvider? provider) => T.Parse(s, provider);
public static bool TryParse(string? s, IFormatProvider? provider, [MaybeNullWhen(returnValue: false)] out T result) => T.TryParse(s, provider, out result);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -410,4 +410,11 @@ namespace Microsoft.AspNetCore.Http.Generated
return T.BindAsync(context, parameter);
}
}

%GENERATEDCODEATTRIBUTE%
file static class ParsableHelper<T> where T : IParsable<T>
{
public static T Parse(string s, IFormatProvider? provider) => T.Parse(s, provider);
public static bool TryParse(string? s, IFormatProvider? provider, [MaybeNullWhen(returnValue: false)] out T result) => T.TryParse(s, provider, out result);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -566,4 +566,11 @@ namespace Microsoft.AspNetCore.Http.Generated
return T.BindAsync(context, parameter);
}
}

%GENERATEDCODEATTRIBUTE%
file static class ParsableHelper<T> where T : IParsable<T>
{
public static T Parse(string s, IFormatProvider? provider) => T.Parse(s, provider);
public static bool TryParse(string? s, IFormatProvider? provider, [MaybeNullWhen(returnValue: false)] out T result) => T.TryParse(s, provider, out result);
}
}
Loading