Skip to content

Commit b39c6d7

Browse files
Fix copying source to target options
1 parent e36fb1b commit b39c6d7

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

Diff for: src/AspNetCore/OData/src/Asp.Versioning.OData.ApiExplorer/ApiExplorer/ODataApiExplorerOptionsFactory.cs

+6-2
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,12 @@ public ODataApiExplorerOptionsFactory(
6969
}
7070

7171
/// <inheritdoc />
72-
protected override ODataApiExplorerOptions CreateInstance( string name ) =>
73-
new( new( CollateApiVersions( providers, Options ), modelConfigurations ) );
72+
protected override ODataApiExplorerOptions CreateInstance( string name )
73+
{
74+
var options = new ODataApiExplorerOptions( new( CollateApiVersions( providers, Options ), modelConfigurations ) );
75+
CopyOptions( Options, options );
76+
return options;
77+
}
7478

7579
private static ODataApiVersionCollectionProvider CollateApiVersions(
7680
IApiVersionMetadataCollationProvider[] providers,

Diff for: src/AspNetCore/WebApi/src/Asp.Versioning.Mvc.ApiExplorer/ApiExplorerOptionsFactory{T}.cs

+17-6
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,25 @@ public ApiExplorerOptionsFactory(
5555
/// <inheritdoc />
5656
protected override T CreateInstance( string name )
5757
{
58-
var apiVersioningOptions = Options;
5958
var options = base.CreateInstance( name );
59+
CopyOptions( Options, options );
60+
return options;
61+
}
6062

61-
options.AssumeDefaultVersionWhenUnspecified = apiVersioningOptions.AssumeDefaultVersionWhenUnspecified;
62-
options.ApiVersionParameterSource = apiVersioningOptions.ApiVersionReader;
63-
options.DefaultApiVersion = apiVersioningOptions.DefaultApiVersion;
64-
options.RouteConstraintName = apiVersioningOptions.RouteConstraintName;
63+
/// <summary>
64+
/// Copies the following source options to the target options.
65+
/// </summary>
66+
/// <param name="sourceOptions">The source options.</param>
67+
/// <param name="targetOptions">The target options.</param>
68+
protected static void CopyOptions( ApiVersioningOptions sourceOptions, T targetOptions )
69+
{
70+
ArgumentNullException.ThrowIfNull( targetOptions, nameof( targetOptions ) );
71+
ArgumentNullException.ThrowIfNull( sourceOptions, nameof( sourceOptions ) );
6572

66-
return options;
73+
targetOptions.AssumeDefaultVersionWhenUnspecified = sourceOptions.AssumeDefaultVersionWhenUnspecified;
74+
targetOptions.ApiVersionParameterSource = sourceOptions.ApiVersionReader;
75+
targetOptions.DefaultApiVersion = sourceOptions.DefaultApiVersion;
76+
targetOptions.RouteConstraintName = sourceOptions.RouteConstraintName;
77+
targetOptions.ApiVersionSelector = sourceOptions.ApiVersionSelector;
6778
}
6879
}

0 commit comments

Comments
 (0)