/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Validation/gen/Parsers/ValidationsGenerator.AddValidation.cs
38 строк
2 KB
Youssef Victor
Cleanup ValidationsGenerator for better incrementality (#66373)
28 апр 2026, 22:45
Не верифицирован
28 апр 2026, 22:45
b58523d
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Threading; using Microsoft.AspNetCore.Http.RequestDelegateGenerator.StaticRouteHandlerModel; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; namespace Microsoft.Extensions.Validation; public sealed partial class ValidationsGenerator : IIncrementalGenerator { internal static bool FindAddValidation(SyntaxNode syntaxNode, CancellationToken cancellationToken) { if (syntaxNode is InvocationExpressionSyntax invocationExpressionSyntax && invocationExpressionSyntax.TryGetMapMethodName(out var method) && method == "AddValidation") { return true; } return false; } internal static InterceptableLocation? TransformAddValidation(GeneratorSyntaxContext context, CancellationToken cancellationToken) { var node = (InvocationExpressionSyntax)context.Node; var semanticModel = context.SemanticModel; var symbol = semanticModel.GetSymbolInfo(node, cancellationToken).Symbol; if (symbol is not IMethodSymbol methodSymbol || methodSymbol.ContainingType.Name != "ValidationServiceCollectionExtensions" || methodSymbol.ContainingAssembly.Name != "Microsoft.Extensions.Validation") { return null; } return semanticModel.GetInterceptableLocation(node, cancellationToken); } }