private async Task <SyntaxReference> GetDeclaringSyntaxReference(CodeFixContext context, TInvocationExpressionSyntax invocationExpression)
        {
            var semanticModel = await context.Document.GetSemanticModelAsync(context.CancellationToken);

            var methodSymbol          = semanticModel.GetSymbolInfo(invocationExpression).Symbol as IMethodSymbol;
            var actualProxyTypeSymbol = _substituteProxyAnalysis.GetActualProxyTypeSymbol(semanticModel, invocationExpression, methodSymbol);
            var syntaxReference       = actualProxyTypeSymbol.DeclaringSyntaxReferences.FirstOrDefault();

            return(syntaxReference);
        }
Пример #2
0
        private void AnalyzeSubstitute(SubstituteContext <TInvocationExpressionSyntax> substituteContext)
        {
            if (AnalyzeProxies(substituteContext))
            {
                return;
            }

            var proxyType = _substituteProxyAnalysis.GetActualProxyTypeSymbol(substituteContext);

            if (proxyType == null)
            {
                return;
            }

            if (AnalyzeTypeAccessability(substituteContext, proxyType))
            {
                return;
            }

            var constructorContext = _substituteConstructorAnalysis.CollectConstructorContext(substituteContext, proxyType);

            AnalyzeConstructor(substituteContext, constructorContext);
        }