Skip to content

Commit 6b610a7

Browse files
Copilotericstj
andauthored
Fix APIDiff to include NETCore references for AspNetCore and WindowsDesktop (#9989)
* Initial plan * Add NETCore reference support for AspNetCore and WindowsDesktop API diffs Co-authored-by: ericstj <[email protected]> * Run the updated script --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: ericstj <[email protected]> Co-authored-by: Eric StJohn <[email protected]>
1 parent 79822ab commit 6b610a7

12 files changed

+157
-106
lines changed

release-notes/10.0/preview/preview6/api-diff/Microsoft.AspNetCore.App/10.0-preview6_Microsoft.AspNetCore.Components.Server.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
public sealed class CircuitOptions
77
{
88
+ public Microsoft.Extensions.Caching.Hybrid.HybridCache? HybridPersistenceCache { get; set; }
9-
+ public System.Nullable<System.TimeSpan> PersistedCircuitDistributedRetentionPeriod { get; set; }
9+
+ public System.TimeSpan? PersistedCircuitDistributedRetentionPeriod { get; set; }
1010
+ public int PersistedCircuitInMemoryMaxRetained { get; set; }
1111
+ public System.TimeSpan PersistedCircuitInMemoryRetentionPeriod { get; set; }
1212
}

release-notes/10.0/preview/preview6/api-diff/Microsoft.AspNetCore.App/10.0-preview6_Microsoft.AspNetCore.Components.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
```diff
44
namespace Microsoft.AspNetCore.Components.Routing
55
{
6-
public sealed class NotFoundEventArgs
6+
public sealed class NotFoundEventArgs : System.EventArgs
77
{
88
- public NotFoundEventArgs();
99
+ public NotFoundEventArgs(string url);

release-notes/10.0/preview/preview6/api-diff/Microsoft.AspNetCore.App/10.0-preview6_Microsoft.AspNetCore.Http.Abstractions.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,43 @@
33
```diff
44
- namespace Microsoft.AspNetCore.Http.Validation
55
- {
6+
- [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
67
- public interface IValidatableInfo
78
- {
89
- System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.AspNetCore.Http.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
910
- }
11+
- [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
1012
- public interface IValidatableInfoResolver
1113
- {
1214
- bool TryGetValidatableParameterInfo(System.Reflection.ParameterInfo parameterInfo, out Microsoft.AspNetCore.Http.Validation.IValidatableInfo? validatableInfo);
1315
- bool TryGetValidatableTypeInfo(System.Type type, out Microsoft.AspNetCore.Http.Validation.IValidatableInfo? validatableInfo);
1416
- }
17+
- [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
1518
- public abstract class ValidatableParameterInfo : Microsoft.AspNetCore.Http.Validation.IValidatableInfo
1619
- {
1720
- protected ValidatableParameterInfo(System.Type parameterType, string name, string displayName);
1821
- protected abstract System.ComponentModel.DataAnnotations.ValidationAttribute[] GetValidationAttributes();
1922
- public virtual System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.AspNetCore.Http.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
2023
- }
24+
- [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
2125
- public abstract class ValidatablePropertyInfo : Microsoft.AspNetCore.Http.Validation.IValidatableInfo
2226
- {
2327
- protected ValidatablePropertyInfo(System.Type declaringType, System.Type propertyType, string name, string displayName);
2428
- protected abstract System.ComponentModel.DataAnnotations.ValidationAttribute[] GetValidationAttributes();
2529
- public virtual System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.AspNetCore.Http.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
2630
- }
27-
- public sealed class ValidatableTypeAttribute
31+
- [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
32+
- public sealed class ValidatableTypeAttribute : System.Attribute
2833
- {
2934
- public ValidatableTypeAttribute();
3035
- }
36+
- [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
3137
- public abstract class ValidatableTypeInfo : Microsoft.AspNetCore.Http.Validation.IValidatableInfo
3238
- {
3339
- protected ValidatableTypeInfo(System.Type type, System.Collections.Generic.IReadOnlyList<Microsoft.AspNetCore.Http.Validation.ValidatablePropertyInfo> members);
3440
- public virtual System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.AspNetCore.Http.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
3541
- }
42+
- [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
3643
- public sealed class ValidateContext
3744
- {
3845
- public ValidateContext();
@@ -45,9 +52,12 @@
4552
- public class ValidationOptions
4653
- {
4754
- public ValidationOptions();
55+
- [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
4856
- public bool TryGetValidatableParameterInfo(System.Reflection.ParameterInfo parameterInfo, out Microsoft.AspNetCore.Http.Validation.IValidatableInfo? validatableInfo);
57+
- [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
4958
- public bool TryGetValidatableTypeInfo(System.Type type, out Microsoft.AspNetCore.Http.Validation.IValidatableInfo? validatableTypeInfo);
5059
- public int MaxDepth { get; set; }
60+
- [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
5161
- public System.Collections.Generic.IList<Microsoft.AspNetCore.Http.Validation.IValidatableInfoResolver> Resolvers { get; }
5262
- }
5363
- }

release-notes/10.0/preview/preview6/api-diff/Microsoft.AspNetCore.App/10.0-preview6_Microsoft.AspNetCore.Identity.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
```diff
44
namespace Microsoft.AspNetCore.Identity
55
{
6-
public class SignInManager<TUser>
7-
where TUser : class
6+
public class SignInManager<TUser> where TUser : class
87
{
98
+ public SignInManager(Microsoft.AspNetCore.Identity.UserManager<TUser> userManager, Microsoft.AspNetCore.Http.IHttpContextAccessor contextAccessor, Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory<TUser> claimsFactory, Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Identity.IdentityOptions> optionsAccessor, Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Identity.SignInManager<TUser>> logger, Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider schemes, Microsoft.AspNetCore.Identity.IUserConfirmation<TUser> confirmation, Microsoft.AspNetCore.Identity.IPasskeyHandler<TUser> passkeyHandler);
109
+ public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.PasskeyCreationOptions> ConfigurePasskeyCreationOptionsAsync(Microsoft.AspNetCore.Identity.PasskeyCreationArgs creationArgs);
@@ -21,7 +20,7 @@
2120
+ {
2221
+ public AuthenticatorSelectionCriteria();
2322
+ public string? AuthenticatorAttachment { get; set; }
24-
+ public bool? RequireResidentKey { get; }
23+
+ public bool RequireResidentKey { get; }
2524
+ public string? ResidentKey { get; set; }
2625
+ public string UserVerification { get; set; }
2726
+ }
@@ -41,8 +40,7 @@
4140
+ System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.PasskeyAssertionResult<TUser>> PerformAssertionAsync(Microsoft.AspNetCore.Identity.PasskeyAssertionContext<TUser> context);
4241
+ System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.PasskeyAttestationResult> PerformAttestationAsync(Microsoft.AspNetCore.Identity.PasskeyAttestationContext<TUser> context);
4342
+ }
44-
+ public sealed class PasskeyAssertionContext<TUser>
45-
+ where TUser : class
43+
+ public sealed class PasskeyAssertionContext<TUser> where TUser : class
4644
+ {
4745
+ public PasskeyAssertionContext();
4846
+ public required string CredentialJson { get; init; }
@@ -58,16 +56,17 @@
5856
+ public static Microsoft.AspNetCore.Identity.PasskeyAssertionResult<TUser> Success<TUser>(Microsoft.AspNetCore.Identity.UserPasskeyInfo passkey, TUser user)
5957
+ where TUser : class;
6058
+ }
61-
+ public sealed class PasskeyAssertionResult<TUser>
62-
+ where TUser : class
59+
+ public sealed class PasskeyAssertionResult<TUser> where TUser : class
6360
+ {
6461
+ public Microsoft.AspNetCore.Identity.PasskeyException? Failure { get; }
6562
+ public Microsoft.AspNetCore.Identity.UserPasskeyInfo? Passkey { get; }
66-
+ public bool? Succeeded { get; }
63+
+ [System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute(true, "Passkey")]
64+
+ [System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute(true, "User")]
65+
+ [System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute(false, "Failure")]
66+
+ public bool Succeeded { get; }
6767
+ public TUser? User { get; }
6868
+ }
69-
+ public sealed class PasskeyAttestationContext<TUser>
70-
+ where TUser : class
69+
+ public sealed class PasskeyAttestationContext<TUser> where TUser : class
7170
+ {
7271
+ public PasskeyAttestationContext();
7372
+ public required string CredentialJson { get; init; }
@@ -81,14 +80,16 @@
8180
+ public static Microsoft.AspNetCore.Identity.PasskeyAttestationResult Success(Microsoft.AspNetCore.Identity.UserPasskeyInfo passkey);
8281
+ public Microsoft.AspNetCore.Identity.PasskeyException? Failure { get; }
8382
+ public Microsoft.AspNetCore.Identity.UserPasskeyInfo? Passkey { get; }
84-
+ public bool? Succeeded { get; }
83+
+ [System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute(true, "Passkey")]
84+
+ [System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute(false, "Failure")]
85+
+ public bool Succeeded { get; }
8586
+ }
8687
+ public sealed class PasskeyCreationArgs
8788
+ {
8889
+ public PasskeyCreationArgs(Microsoft.AspNetCore.Identity.PasskeyUserEntity userEntity);
8990
+ public string Attestation { get; set; }
9091
+ public Microsoft.AspNetCore.Identity.AuthenticatorSelectionCriteria? AuthenticatorSelection { get; set; }
91-
+ public System.Nullable<System.Text.Json.JsonElement> Extensions { get; set; }
92+
+ public System.Text.Json.JsonElement? Extensions { get; set; }
9293
+ public Microsoft.AspNetCore.Identity.PasskeyUserEntity UserEntity { get; }
9394
+ }
9495
+ public sealed class PasskeyCreationOptions
@@ -98,22 +99,21 @@
9899
+ public override string ToString();
99100
+ public Microsoft.AspNetCore.Identity.PasskeyUserEntity UserEntity { get; }
100101
+ }
101-
+ public sealed class PasskeyException
102+
+ public sealed class PasskeyException : System.Exception
102103
+ {
103104
+ public PasskeyException(string message, System.Exception? innerException);
104105
+ public PasskeyException(string message);
105106
+ }
106-
+ public sealed class PasskeyOriginInfo
107+
+ public readonly struct PasskeyOriginInfo
107108
+ {
108109
+ public PasskeyOriginInfo(string origin, bool crossOrigin);
109110
+ public bool CrossOrigin { get; }
110111
+ public string Origin { get; }
111112
+ }
112-
+ public sealed class PasskeyRequestArgs<TUser>
113-
+ where TUser : class
113+
+ public sealed class PasskeyRequestArgs<TUser> where TUser : class
114114
+ {
115115
+ public PasskeyRequestArgs();
116-
+ public System.Nullable<System.Text.Json.JsonElement> Extensions { get; set; }
116+
+ public System.Text.Json.JsonElement? Extensions { get; set; }
117117
+ public TUser? User { get; set; }
118118
+ public string UserVerification { get; set; }
119119
+ }

release-notes/10.0/preview/preview6/api-diff/Microsoft.AspNetCore.App/10.0-preview6_Microsoft.AspNetCore.Server.HttpSys.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
{
66
public class HttpSysOptions
77
{
8-
- public System.Action<Microsoft.AspNetCore.Http.Features.IFeatureCollection, System.ReadOnlySpan<byte>> TlsClientHelloBytesCallback { get; set; }
8+
- public System.Action<Microsoft.AspNetCore.Http.Features.IFeatureCollection, System.ReadOnlySpan<byte>>? TlsClientHelloBytesCallback { get; set; }
99
}
1010
+ public interface IHttpSysRequestPropertyFeature
1111
+ {

release-notes/10.0/preview/preview6/api-diff/Microsoft.AspNetCore.App/10.0-preview6_Microsoft.Extensions.FileSystemGlobbing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
{
66
public class Matcher
77
{
8-
+ public Matcher(System.StringComparison comparisonType = 5, bool preserveFilterOrder = false);
8+
+ public Matcher(System.StringComparison comparisonType = System.StringComparison.OrdinalIgnoreCase, bool preserveFilterOrder = false);
99
}
1010
}
1111
```

release-notes/10.0/preview/preview6/api-diff/Microsoft.AspNetCore.App/10.0-preview6_Microsoft.Extensions.Identity.Core.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
{
1212
+ public static readonly System.Version Version3;
1313
}
14-
public class UserManager<TUser>
15-
where TUser : class
14+
public class UserManager<TUser> : System.IDisposable where TUser : class
1615
{
1716
+ public virtual System.Threading.Tasks.Task<TUser?> FindByPasskeyIdAsync(byte[] credentialId);
1817
+ public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.UserPasskeyInfo?> GetPasskeyAsync(TUser user, byte[] credentialId);
@@ -21,7 +20,7 @@
2120
+ public virtual System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.IdentityResult> SetPasskeyAsync(TUser user, Microsoft.AspNetCore.Identity.UserPasskeyInfo passkey);
2221
+ public virtual bool SupportsUserPasskey { get; }
2322
}
24-
+ public interface IUserPasskeyStore<TUser> : Microsoft.AspNetCore.Identity.IUserStore<TUser> where TUser : class
23+
+ public interface IUserPasskeyStore<TUser> : Microsoft.AspNetCore.Identity.IUserStore<TUser>, System.IDisposable where TUser : class
2524
+ {
2625
+ System.Threading.Tasks.Task<TUser?> FindByPasskeyIdAsync(byte[] credentialId, System.Threading.CancellationToken cancellationToken);
2726
+ System.Threading.Tasks.Task<Microsoft.AspNetCore.Identity.UserPasskeyInfo?> FindPasskeyAsync(TUser user, byte[] credentialId, System.Threading.CancellationToken cancellationToken);
@@ -40,12 +39,11 @@
4039
+ public int ChallengeSize { get; set; }
4140
+ public string? ServerDomain { get; set; }
4241
+ public System.TimeSpan Timeout { get; set; }
43-
+ public sealed class CredentialBackupPolicy
42+
+ public enum CredentialBackupPolicy
4443
+ {
45-
+ public const Microsoft.AspNetCore.Identity.PasskeyOptions.CredentialBackupPolicy Allowed = 1;
46-
+ public const Microsoft.AspNetCore.Identity.PasskeyOptions.CredentialBackupPolicy Disallowed = 2;
47-
+ public const Microsoft.AspNetCore.Identity.PasskeyOptions.CredentialBackupPolicy Required = 0;
48-
+ public int value__;
44+
+ Required = 0,
45+
+ Allowed = 1,
46+
+ Disallowed = 2,
4947
+ }
5048
+ }
5149
+ public class UserPasskeyInfo

release-notes/10.0/preview/preview6/api-diff/Microsoft.AspNetCore.App/10.0-preview6_Microsoft.Extensions.Identity.Stores.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
```diff
44
namespace Microsoft.AspNetCore.Identity
55
{
6-
+ public class IdentityUserPasskey<TKey>
7-
+ where TKey : System.IEquatable<TKey>
6+
+ public class IdentityUserPasskey<TKey> where TKey : System.IEquatable<TKey>
87
+ {
98
+ public IdentityUserPasskey();
109
+ public virtual byte[] AttestationObject { get; set; }

release-notes/10.0/preview/preview6/api-diff/Microsoft.AspNetCore.App/10.0-preview6_Microsoft.Extensions.Validation.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,59 +10,71 @@
1010
+ }
1111
+ namespace Microsoft.Extensions.Validation
1212
+ {
13+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
1314
+ public interface IValidatableInfo
1415
+ {
1516
+ System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.Extensions.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
1617
+ }
18+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
1719
+ public interface IValidatableInfoResolver
1820
+ {
1921
+ bool TryGetValidatableParameterInfo(System.Reflection.ParameterInfo parameterInfo, out Microsoft.Extensions.Validation.IValidatableInfo? validatableInfo);
2022
+ bool TryGetValidatableTypeInfo(System.Type type, out Microsoft.Extensions.Validation.IValidatableInfo? validatableInfo);
2123
+ }
24+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
2225
+ public abstract class ValidatableParameterInfo : Microsoft.Extensions.Validation.IValidatableInfo
2326
+ {
2427
+ protected ValidatableParameterInfo(System.Type parameterType, string name, string displayName);
2528
+ protected abstract System.ComponentModel.DataAnnotations.ValidationAttribute[] GetValidationAttributes();
2629
+ public virtual System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.Extensions.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
2730
+ }
31+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
2832
+ public abstract class ValidatablePropertyInfo : Microsoft.Extensions.Validation.IValidatableInfo
2933
+ {
3034
+ protected ValidatablePropertyInfo(System.Type declaringType, System.Type propertyType, string name, string displayName);
3135
+ protected abstract System.ComponentModel.DataAnnotations.ValidationAttribute[] GetValidationAttributes();
3236
+ public virtual System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.Extensions.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
3337
+ }
34-
+ public sealed class ValidatableTypeAttribute
38+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
39+
+ public sealed class ValidatableTypeAttribute : System.Attribute
3540
+ {
3641
+ public ValidatableTypeAttribute();
3742
+ }
43+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
3844
+ public abstract class ValidatableTypeInfo : Microsoft.Extensions.Validation.IValidatableInfo
3945
+ {
4046
+ protected ValidatableTypeInfo(System.Type type, System.Collections.Generic.IReadOnlyList<Microsoft.Extensions.Validation.ValidatablePropertyInfo> members);
4147
+ public virtual System.Threading.Tasks.Task ValidateAsync(object? value, Microsoft.Extensions.Validation.ValidateContext context, System.Threading.CancellationToken cancellationToken);
4248
+ }
49+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
4350
+ public sealed class ValidateContext
4451
+ {
45-
+ public event System.Action<Microsoft.Extensions.Validation.ValidationErrorContext?>? OnValidationError { add; remove; }
52+
+ public event System.Action<Microsoft.Extensions.Validation.ValidationErrorContext>? OnValidationError { add; remove; }
4653
+ public ValidateContext();
4754
+ public int CurrentDepth { get; set; }
4855
+ public string CurrentValidationPath { get; set; }
4956
+ public required System.ComponentModel.DataAnnotations.ValidationContext ValidationContext { get; set; }
5057
+ public System.Collections.Generic.Dictionary<string, string[]>? ValidationErrors { get; set; }
5158
+ public required Microsoft.Extensions.Validation.ValidationOptions ValidationOptions { get; set; }
5259
+ }
53-
+ public sealed class ValidationErrorContext
60+
+ [System.Diagnostics.DebuggerDisplayAttribute("{GetDebuggerDisplay(),nq}")]
61+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
62+
+ public readonly struct ValidationErrorContext
5463
+ {
55-
+ public required object? Container { get; init; }
64+
+ public required object? Container { get; init; }
5665
+ public required System.Collections.Generic.IReadOnlyList<string> Errors { get; init; }
5766
+ public required string Name { get; init; }
5867
+ public required string Path { get; init; }
5968
+ }
6069
+ public class ValidationOptions
6170
+ {
6271
+ public ValidationOptions();
72+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
6373
+ public bool TryGetValidatableParameterInfo(System.Reflection.ParameterInfo parameterInfo, out Microsoft.Extensions.Validation.IValidatableInfo? validatableInfo);
74+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
6475
+ public bool TryGetValidatableTypeInfo(System.Type type, out Microsoft.Extensions.Validation.IValidatableInfo? validatableTypeInfo);
6576
+ public int MaxDepth { get; set; }
77+
+ [System.Diagnostics.CodeAnalysis.ExperimentalAttribute("ASP0029", UrlFormat = "https://aka.ms/aspnet/analyzer/{0}")]
6678
+ public System.Collections.Generic.IList<Microsoft.Extensions.Validation.IValidatableInfoResolver> Resolvers { get; }
6779
+ }
6880
+ }

0 commit comments

Comments
 (0)