Microsoft.CodeAnalysis Namespace
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Classes
AdditionalDocument |
Represents an additional file passed down to analyzers. |
AdditionalText |
Represents a non source code file. |
AdhocWorkspace |
A workspace that allows full manipulation of projects and documents, but does not persist changes. |
AnalyzerConfig |
Represents a single EditorConfig file, see https://editorconfig.org for details about the format. |
AnalyzerConfig.Section |
Represents a named section of the editorconfig file, which consists of a name followed by a set of key-value pairs. |
AnalyzerConfigDocument | |
AnalyzerConfigSet |
Represents a set of AnalyzerConfig, and can compute the effective analyzer options for a given source file. This is used to collect all the AnalyzerConfig files for that would apply to a compilation. |
AnnotationExtensions | |
AssemblyIdentity |
Represents an identity of an assembly as defined by CLI metadata specification. |
AssemblyIdentityComparer |
Compares assembly identities. Derived types may implement platform specific unification and portability policies. |
AssemblyMetadata |
Represents an immutable snapshot of assembly CLI metadata. |
AttributeData | |
CaseInsensitiveComparison |
Case-insensitive operations (mostly comparison) on unicode strings. |
CodeAnalysisProgress |
Represents the progress of an operation. Commonly used to update a UI visible to a user when a long running operation is happening. |
CommandLineArguments |
The base class for representing command line arguments to a Microsoft.CodeAnalysis.CommonCompiler. |
CommandLineParser | |
CommandLineProject | |
Compilation |
The compilation object is an immutable representation of a single invocation of the compiler. Although immutable, a compilation is also on-demand, and will realize and cache data as necessary. A compilation can produce a new compilation from existing compilation with the application of small deltas. In many cases, it is more efficient than creating a new compilation from scratch, as the new compilation can reuse information from the old compilation. |
CompilationOptions |
Represents compilation options common to C# and VB. |
CompilationReference |
Reference to another C# or VB compilation. |
ControlFlowAnalysis |
Provides information about statements which transfer control in and out of a region. This information is returned from a call to Microsoft.CodeAnalysis.SemanticModel.AnalyzeControlFlow(Microsoft.CodeAnalysis.SyntaxNode). |
CSharpExtensions | |
CustomModifier | |
DataFlowAnalysis |
Provides information about how data flows into and out of a region. This information is returned from a call to Microsoft.CodeAnalysis.SemanticModel.AnalyzeDataFlow(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode), or one of its language-specific overloads, where you pass the first and last statements of the region as parameters. "Inside" means those statements or ones between them. "Outside" are any other statements of the same method. |
DesktopAssemblyIdentityComparer | |
DesktopStrongNameProvider |
Provides strong name and signs source assemblies. |
Diagnostic |
Represents a diagnostic, such as a compiler error or a warning, along with the location where it occurred. |
DiagnosticDescriptor |
Provides a description about a Diagnostic |
DiagnosticFormatter |
Formats Diagnostic messages. |
DllImportData |
Information that describes how a method from the underlying Platform is to be invoked. |
Document |
Represents a source code document that is part of a project. It provides access to the source text, parsed syntax tree and the corresponding semantic model. |
DocumentActiveContextChangedEventArgs | |
DocumentationCommentId |
APIs for constructing documentation comment id's, and finding symbols that match ids. |
DocumentationProvider |
A class used to provide XML documentation to the compiler for members from metadata. A custom implementation of this class should be returned from a DocumentationResolver to provide XML documentation comments from custom caches or locations. |
DocumentDiagnostic | |
DocumentEventArgs | |
DocumentId |
An identifier that can be used to retrieve the same Document across versions of the workspace. |
DocumentInfo |
A class that represents all the arguments necessary to create a new document instance. |
EmbeddedText |
Represents text to be embedded in a PDB. |
ErrorLogOptions |
Options controlling the generation of a SARIF log file containing compilation or analyzer diagnostics. |
ExtensionOrderAttribute | |
FileSystemExtensions | |
FileTextLoader | |
GeneratorAttribute |
Place this attribute onto a type to cause it to be considered a source generator |
GeneratorDriver |
Responsible for orchestrating a source generation pass |
GeneratorDriverRunResult |
Represents the results of running a generation pass over a set of ISourceGenerators. |
GeneratorExtensions | |
IncrementalGeneratorRunStep |
A description of a step of an incremental generator that was executed. |
IncrementalValueProviderExtensions | |
ISymbolExtensions | |
LanguageNames |
A class that provides constants for common language names. |
LocalizableResourceString |
A localizable resource string that may possibly be formatted differently depending on culture. |
LocalizableString |
A string that may possibly be formatted differently depending on culture. NOTE: Types implementing LocalizableString must be serializable. |
Location |
A program location in source code. |
Metadata |
Represents immutable assembly or module CLI metadata. |
MetadataId |
An Id that can be used to identify a metadata instance. If two metadata instances have the same id then they are guaranteed to have the same content. If two metadata instances have different ids, then the contents may or may not be the same. As such, the id is useful as a key in a cache when a client wants to share data for a metadata reference as long as it has not changed. |
MetadataReference |
Represents metadata image reference. |
MetadataReferenceResolver |
Resolves references to metadata specified in the source (#r directives). |
ModelExtensions | |
ModuleMetadata |
Represents an immutable snapshot of module CLI metadata. |
NullableContextExtensions | |
NullableContextOptionsExtensions | |
ParseOptions |
Represents parse options common to C# and VB. |
PortableExecutableReference |
Reference to metadata stored in the standard ECMA-335 metadata format. |
Project |
Represents a project that is part of a Solution. |
ProjectDependencyGraph |
A ProjectDependencyGraph models the dependencies between projects in a solution. |
ProjectDiagnostic | |
ProjectId |
An identifier that can be used to refer to the same Project across versions. |
ProjectInfo |
A class that represents all the arguments necessary to create a new project instance. |
ProjectReference | |
ResourceDescription |
Representation of a resource whose contents are to be embedded in the output assembly. |
RuleSet |
Represents a set of rules as specified in a ruleset file. |
RuleSetInclude |
Represents a Include tag in a RuleSet file. |
SarifVersionFacts | |
ScriptCompilationInfo | |
SemanticModel |
Allows asking semantic questions about a tree of syntax nodes in a Compilation. Typically, an instance is obtained by a call to GetBinding on a Compilation or Compilation. |
Solution |
Represents a set of projects and their source code documents. |
SolutionId |
An identifier that can be used to refer to the same Solution across versions. |
SolutionInfo |
A class that represents all the arguments necessary to create a new solution instance. |
SourceFileResolver |
Resolves references to source files specified in source code. |
SourceGeneratedDocument |
A Document that was generated by an ISourceGenerator. |
SourceReferenceResolver |
Resolves references to source documents specified in the source. |
StrongNameProvider |
Provides strong name and signs source assemblies. |
SuppressionDescriptor |
Provides a description about a programmatic suppression of a Diagnostic by a DiagnosticSuppressor. |
SymbolDisplayExtensions |
Exposes extension methods for displaying symbol descriptions. |
SymbolDisplayFormat |
Describes the formatting rules that should be used when displaying symbols. |
SymbolEqualityComparer |
Allows for the comparison of two ISymbol instances |
SymbolVisitor | |
SymbolVisitor<TResult> | |
SymbolVisitor<TArgument,TResult> | |
SyntaxAnnotation |
A SyntaxAnnotation is used to annotate syntax elements with additional information. Since syntax elements are immutable, annotating them requires creating new instances of them with the annotations attached. |
SyntaxNode |
Represents a non-terminal node in the syntax tree. This is the language agnostic equivalent of CSharpSyntaxNode and VisualBasicSyntaxNode. |
SyntaxNodeExtensions | |
SyntaxReference |
A reference to a syntax node. |
SyntaxTree |
The parsed representation of a source document. |
SyntaxTreeOptionsProvider | |
SyntaxWalker |
Walks the syntax tree, allowing subclasses to operate on all nodes, token and trivia. The walker will perform a depth first walk of the tree. |
TextAndVersion |
A class that represents both a source text and its version stamp. |
TextDocument | |
TextDocumentEventArgs | |
TextLoader |
A class that represents access to a source text and its version from a storage location. |
UnresolvedMetadataReference |
Represents a metadata reference that can't be or is not yet resolved. |
VisualBasicExtensions |
Addition Visual Basic syntax extension methods. |
WellKnownDiagnosticTags | |
WellKnownGeneratorInputs |
Well known incremental generator input step names. |
WellKnownGeneratorOutputs |
Well known incremental generator output step names. |
WellKnownMemberNames |
Specifies the member names known to the compiler (such as |
Workspace |
A workspace provides access to a active set of source code projects and documents and their associated syntax trees, compilations and semantic models. A workspace has a current solution that is an immutable snapshot of the projects and documents. This property may change over time as the workspace is updated either from live interactions in the environment or via call to the workspace's TryApplyChanges(Solution) method. |
WorkspaceChangeEventArgs |
The EventArgs describing any kind of workspace change. |
WorkspaceDiagnostic | |
WorkspaceDiagnosticEventArgs | |
WorkspaceKind |
Known workspace kinds |
WorkspaceRegistration | |
XmlDocumentationProvider |
A class used to provide XML documentation to the compiler for members from metadata from an XML document source. |
XmlFileResolver |
Resolves references to XML files specified in the source. |
XmlReferenceResolver |
Resolves references to XML documents specified in source code. |
Structs
AnalyzerConfig.SectionNameMatcher | |
AnalyzerConfigOptionsResult |
Holds results from GetOptionsForSourcePath(String). |
ChildSyntaxList | |
ChildSyntaxList.Enumerator |
Enumerates the elements of a ChildSyntaxList. |
ChildSyntaxList.Reversed | |
ChildSyntaxList.Reversed.Enumerator | |
CommandLineAnalyzerReference |
Describes a command line analyzer assembly specification. |
CommandLineReference |
Describes a command line metadata reference (assembly or netmodule) specification. |
CommandLineSourceFile |
Describes a source file specification stored on command line arguments. |
CompilationOutputInfo |
Paths of files produced by the compilation. |
FileLinePositionSpan |
Represents a span of text in a source code file in terms of file name, line number, and offset within line. However, the file is actually whatever was passed in when asked to parse; there may not really be a file. |
GeneratedSourceResult |
Represents the results of an ISourceGenerator calling AddSource(String, SourceText). |
GeneratedSourceText |
A source text created by an ISourceGenerator |
GeneratorAttributeSyntaxContext | |
GeneratorDriverOptions |
Options passed to a GeneratorDriver during creation |
GeneratorDriverTimingInfo |
Contains timing information for a full generation pass. |
GeneratorExecutionContext |
Context passed to a source generator when Execute(GeneratorExecutionContext) is called |
GeneratorInitializationContext |
Context passed to a source generator when Initialize(GeneratorInitializationContext) is called |
GeneratorPostInitializationContext |
Context passed to a source generator when it has opted-in to PostInitialization via RegisterForPostInitialization(Action<GeneratorPostInitializationContext>) |
GeneratorRunResult |
Represents the results of a single ISourceGenerator generation pass. |
GeneratorSyntaxContext |
Context passed to an ISyntaxContextReceiver when OnVisitSyntaxNode(GeneratorSyntaxContext) is called |
GeneratorTimingInfo |
Contains timing information for a single generator. |
ImportedNamespaceOrType |
Represents an INamespaceOrTypeSymbol that has been imported, and the location the import was
declared at. This corresponds to |
ImportedXmlNamespace |
Represents an imported xml namespace name. This corresponds to |
IncrementalGeneratorInitializationContext |
Context passed to an incremental generator when Initialize(IncrementalGeneratorInitializationContext) is called |
IncrementalGeneratorPostInitializationContext |
Context passed to an incremental generator when it has registered an output via RegisterPostInitializationOutput(Action<IncrementalGeneratorPostInitializationContext>) |
IncrementalValueProvider<TValue> |
Represents a provider of a single value that can be transformed as part of constructing an execution pipeline |
IncrementalValuesProvider<TValues> |
Represents a provider of multiple values that can be transformed to construct an execution pipeline |
InitializationContext |
Context passed to a source generator when Initialize(InitializationContext) is called |
IOperation.OperationList |
Implements a struct-based collection of Microsoft.CodeAnalysis.Operation nodes. This collection is ordered, but random access into the collection is not provided. |
IOperation.OperationList.Enumerator |
Implements a struct-based enumerator for Microsoft.CodeAnalysis.Operation nodes. This type is not hardened
to |
IOperation.OperationList.Reversed |
Implements a reverse-order struct-based collection of Microsoft.CodeAnalysis.Operation nodes. This collection is ordered, but random access into the collection is not provided. |
IOperation.OperationList.Reversed.Enumerator |
Implements a reverse-order struct-based enumerator for Microsoft.CodeAnalysis.Operation nodes. This type is not hardened
to |
LineMapping |
Represents a line mapping defined by a single line mapping directive ( |
LoadTextOptions |
Options used to load SourceText. |
MetadataReferenceProperties |
Information about a metadata reference. |
NullabilityInfo | |
Optional<T> |
Combines a value, Value, and a flag, HasValue, indicating whether or not that value is meaningful. |
PreprocessingSymbolInfo | |
ProjectChanges | |
SeparatedSyntaxList<TNode>.Enumerator | |
SeparatedSyntaxList<TNode> | |
SolutionChanges | |
SourceGeneratorContext |
Context passed to a source generator when Execute(SourceGeneratorContext) is called |
SourceProductionContext |
Context passed to an incremental generator when it has registered an output via RegisterSourceOutput<TSource>(IncrementalValueProvider<TSource>, Action<SourceProductionContext,TSource>) |
SubsystemVersion |
Represents subsystem version, see /subsystemversion command line option for details and valid values. The following table lists common subsystem versions of Windows. Windows version Subsystem version
|
SymbolDisplayPart |
A single element of a symbol description. For example, a keyword, a punctuation character or a class name. |
SymbolInfo | |
SyntaxList<TNode>.Enumerator | |
SyntaxList<TNode> |
A list of SyntaxNode. |
SyntaxNodeOrToken |
A wrapper for either a syntax node (SyntaxNode) or a syntax token (SyntaxToken). |
SyntaxNodeOrTokenList |
A list of SyntaxNodeOrToken structures. |
SyntaxNodeOrTokenList.Enumerator |
Enumerator for lists of SyntaxNodeOrToken structs. |
SyntaxToken |
Represents a token in the syntax tree. |
SyntaxTokenList |
Represents a read-only list of SyntaxToken. |
SyntaxTokenList.Enumerator |
A structure for enumerating a SyntaxTokenList |
SyntaxTokenList.Reversed |
Reversed enumerable. |
SyntaxTokenList.Reversed.Enumerator | |
SyntaxTrivia |
Represents a trivia in the syntax tree. |
SyntaxTriviaList |
Represents a read-only list of SyntaxTrivia. |
SyntaxTriviaList.Enumerator | |
SyntaxTriviaList.Reversed |
Reversed enumerable. |
SyntaxTriviaList.Reversed.Enumerator | |
SyntaxValueProvider |
Allows a user to create Syntax based input nodes for incremental generation |
TypedConstant |
Represents a constant value used as an argument to a custom attribute. |
TypeInfo | |
VersionStamp |
VersionStamp should be only used to compare versions returned by same API. |
Interfaces
IAliasSymbol |
Represents a using alias (Imports alias in Visual Basic). |
IAnalyzerAssemblyLoader |
Handles loading analyzer assemblies and their dependencies. Before an analyzer assembly is loaded with LoadFromPath(String), its location and the location of all of its dependencies must first be specified by calls to AddDependencyLocation(String). |
IArrayTypeSymbol |
Represents an array. |
IAssemblySymbol |
Represents a .NET assembly, consisting of one or more modules. |
ICompilationUnitSyntax |
Interface implemented by any node that is the root 'CompilationUnit' of a SyntaxTree. i.e.
any node returned by GetRoot(CancellationToken) where HasCompilationUnitRoot
is This interface provides a common way to both easily find the root of a SyntaxTree given any SyntaxNode, as well as a common way for handling the special EndOfFileToken that is needed to store all final trivia in a SourceText that is not owned by any other SyntaxToken. |
IDiscardSymbol |
A symbol representing a discarded value, e.g. a symbol in the result of
GetSymbolInfo for |
IDynamicTypeSymbol |
Represents the 'dynamic' type in C#. |
IErrorTypeSymbol |
An IErrorTypeSymbol is used when the compiler cannot determine a symbol object to return because of an error. For example, if a field is declared "Goo x;", and the type "Goo" cannot be found, an IErrorTypeSymbol is returned when asking the field "x" what it's type is. |
IEventSymbol |
Represents an event. |
IFieldSymbol |
Represents a field in a class, struct or enum. |
IFunctionPointerTypeSymbol |
Represents a function pointer type such as "delegate*<void>". |
IImportScope |
Represents the set of symbols that are imported to a particular position in a source file. Each import has a reference to the location the import directive was declared at. For the IAliasSymbol import, the location can be found using either Locations or DeclaringSyntaxReferences on the IAliasSymbol itself. For Imports or XmlNamespaces the location is found through DeclaringSyntaxReference or DeclaringSyntaxReference respectively. |
IIncrementalGenerator |
The base interface required to implement an incremental generator |
ILabelSymbol |
Represents a label in method body |
ILocalSymbol |
Represents a local variable in method body. |
IMethodSymbol |
Represents a method or method-like symbol (including constructor, destructor, operator, or property/event accessor). |
IModuleSymbol |
Represents a module within an assembly. Every assembly contains one or more modules. |
INamedTypeSymbol |
Represents a type other than an array, a pointer, a type parameter. |
INamespaceOrTypeSymbol |
Represents either a namespace or a type. |
INamespaceSymbol |
Represents a namespace. |
IOperation |
Root type for representing the abstract semantics of C# and VB statements and expressions. |
IParameterSymbol |
Represents a parameter of a method or property. |
IPointerTypeSymbol |
Represents a pointer type such as "int *". Pointer types are used only in unsafe code. |
IPreprocessingSymbol |
Represents a preprocessing conditional compilation symbol. |
IPropertySymbol |
Represents a property or indexer. |
IRangeVariableSymbol |
Represents a range variable in a query expression. |
ISkippedTokensTriviaSyntax |
Represents structured trivia that contains skipped tokens. This is implemented by SkippedTokensTriviaSyntax and SkippedTokensTriviaSyntax. |
ISourceAssemblySymbol |
Represents a source assembly symbol exposed by the compiler. |
ISourceGenerator |
The base interface required to implement a source generator |
IStructuredTriviaSyntax |
Represents the root node of a structured trivia tree (for example, a preprocessor directive or a documentation comment). From this root node you can traverse back up to the containing trivia in the outer tree that contains it. |
ISupportedChangesService |
Can be acquired from Services, with GetService<TWorkspaceService>(). |
ISymbol |
Represents a symbol (namespace, class, method, parameter, etc.) exposed by the compiler. |
ISyntaxContextReceiver |
Receives notifications of each SyntaxNode in the compilation, along with a |
ISyntaxReceiver |
Receives notifications of each SyntaxNode in the compilation before generation runs |
ITypeParameterSymbol |
Represents a type parameter in a generic type or generic method. |
ITypeSymbol |
Represents a type. |
Enums
Accessibility |
Enumeration for common accessibility combinations. |
ApplyChangesKind | |
AssemblyIdentityComparer.ComparisonResult |
A set of possible outcomes of AssemblyIdentity comparison. |
AssemblyIdentityParts | |
CandidateReason |
Indicates the reasons why a candidate (or set of candidate) symbols were not considered correct in SemanticInfo. Higher values take precedence over lower values, so if, for example, there a symbol with a given name that was inaccessible, and other with the wrong arity, only the inaccessible one would be reported in the SemanticInfo. |
DiagnosticSeverity |
Describes how severe a diagnostic is. |
DocumentationMode |
Specifies the different documentation comment processing modes. |
GeneratedKind | |
IncrementalGeneratorOutputKind |
Represents the various output kinds of an IIncrementalGenerator. |
IncrementalStepRunReason |
The state of the output of a given executed incremental source generator step. |
LineVisibility |
The state of the visibility of a line. |
LocationKind |
Specifies the kind of location (source vs. metadata). |
MetadataImageKind |
The kind of metadata a PE file image contains. |
MetadataImportOptions |
Specifies what symbols to import from metadata. |
MethodKind |
Enumeration for possible kinds of method symbols. |
NamespaceKind |
Describes the kind of the namespace extent. |
NullableAnnotation |
Represents the nullability of values that can be assigned to an expression used as an lvalue. |
NullableContext |
Represents the state of the nullable analysis at a specific point in a file. Bits one and two correspond to whether the nullable feature is enabled. Bits three and four correspond to whether the context was inherited from the global context. |
NullableContextOptions |
Represents the default state of nullable analysis in this compilation. |
NullableFlowState |
Represents the compiler's analysis of whether an expression may be null |
OperationKind |
All of the kinds of operations, including statements and expressions. |
OptimizationLevel |
Determines the level of optimization of the generated code. |
OutputKind |
Specifies output assembly kinds generated by compiler. |
Platform | |
PreservationMode |
The mode in which value is preserved. |
RefKind |
Denotes the kind of reference. |
ReportDiagnostic |
Describes how to report a warning diagnostic. |
RuntimeCapability |
Specifies capabilities that may or may not be supported by the common language runtime the compilation is targeting. |
SarifVersion |
Specifies the version of the SARIF log file to produce. |
ScopedKind |
Enumeration for kinds of scoped modifiers. |
SourceCodeKind |
Specifies the C# or VB source code kind. |
SpecialType |
Specifies the Ids of special runtime types. |
SpeculativeBindingOption |
Describes the kind of binding to be performed in one of the SemanticModel speculative binding methods. |
SymbolDisplayDelegateStyle |
Specifies how to display delegates (just the name or the name with the signature). |
SymbolDisplayExtensionMethodStyle |
Specifies how to display extension methods. |
SymbolDisplayGenericsOptions |
Specifies the options for how generics are displayed in the description of a symbol. |
SymbolDisplayGlobalNamespaceStyle |
Specifies the options for how to display the global namespace in the description of a symbol. |
SymbolDisplayKindOptions |
Specifies which kind keywords should be included when displaying symbols. |
SymbolDisplayLocalOptions |
Specifies the options for how locals are displayed in the description of a symbol. |
SymbolDisplayMemberOptions |
Specifies the options for how members are displayed in the description of a symbol. |
SymbolDisplayMiscellaneousOptions |
Specifies miscellaneous options about the format of symbol descriptions. |
SymbolDisplayParameterOptions |
Specifies how parameters are displayed in the description of a (member, property/indexer, or delegate) symbol. |
SymbolDisplayPartKind |
Specifies the kinds of a piece of classified text (SymbolDisplayPart). |
SymbolDisplayPropertyStyle |
Specifies the options for how properties are displayed in symbol descriptions. |
SymbolDisplayTypeQualificationStyle |
Specifies how much qualification is used in symbol descriptions. |
SymbolFilter |
Indicate what kinds of declaration symbols will be included |
SymbolKind |
Specifies the possible kinds of symbols. |
SyntaxRemoveOptions | |
SyntaxWalkerDepth |
Syntax the SyntaxWalker should descend into. |
TextDocumentKind |
Indicates kind of a TextDocument |
TypedConstantKind |
Represents the kind of a TypedConstant. |
TypeKind |
Enumeration for possible kinds of type symbols. |
TypeParameterKind |
Represents the different kinds of type parameters. |
VarianceKind |
An enumeration declaring the kinds of variance supported for generic type parameters. |
WorkspaceChangeKind | |
WorkspaceDiagnosticKind |
Delegates
SyntaxContextReceiverCreator |
Allows a generator to provide instances of an ISyntaxContextReceiver |
SyntaxReceiverCreator |
Allows a generator to provide instances of an ISyntaxReceiver |