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);
            }