using System.Linq; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; // ... var methodSymbol = compilation.GetSymbolsWithName(name: "Foo", filter: SymbolFilter.Member) .OfType().FirstOrDefault(); var resolveResult = new ResolveResult( methodSymbol != null, methodSymbol != null ? (ITypeSymbol) methodSymbol.ReturnType : null );
using System.Linq; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; // ... var variableName = "bar"; var variableSymbol = SemanticModel.LookupSymbols(context.SyntaxTree.GetRoot().FullSpan.Start, name: variableName).FirstOrDefault(); var resolveResult = new ResolveResult( variableSymbol != null, variableSymbol != null ? variableSymbol.GetTypeOrReturnType() : null );Both examples are likely using the Roslyn package/library, which is the .NET Compiler Platform. The Roslyn package/library provides APIs for analyzing, manipulating, and generating C# code.