public ReferenceReplacer( AbstractReplacePropertyWithMethodsService <TIdentifierNameSyntax, TExpressionSyntax, TCrefSyntax, TStatementSyntax, TPropertySyntax> service, SemanticModel semanticModel, ISyntaxFactsService syntaxFacts, ISemanticFactsService semanticFacts, SyntaxEditor editor, TIdentifierNameSyntax identifierName, IPropertySymbol property, IFieldSymbol propertyBackingField, string desiredGetMethodName, string desiredSetMethodName, CancellationToken cancellationToken) { _service = service; _semanticModel = semanticModel; _syntaxFacts = syntaxFacts; _semanticFacts = semanticFacts; _editor = editor; _identifierName = identifierName; _property = property; _propertyBackingField = propertyBackingField; _desiredGetMethodName = desiredGetMethodName; _desiredSetMethodName = desiredSetMethodName; _cancellationToken = cancellationToken; _expression = _identifierName; _cref = _service.TryGetCrefSyntax(_identifierName); if (_syntaxFacts.IsNameOfMemberAccessExpression(_expression)) { _expression = (TExpressionSyntax)_expression.Parent !; } }
private TCrefSyntax GetCrefReference(TCrefSyntax originalCref) { SyntaxToken newIdentifierToken; SyntaxNode? parameterType; if (_property.GetMethod != null) { newIdentifierToken = Generator.Identifier(_desiredGetMethodName); parameterType = null; } else { newIdentifierToken = Generator.Identifier(_desiredSetMethodName); parameterType = Generator.TypeExpression(_property.Type); } return _service.CreateCrefSyntax(originalCref, newIdentifierToken, parameterType); }