Delen via


ISyntaxContextReceiver Interface

Definition

Receives notifications of each SyntaxNode in the compilation, along with a
SemanticModel that can be queried to obtain more information, before generation runs.

public interface ISyntaxContextReceiver
type ISyntaxContextReceiver = interface
Public Interface ISyntaxContextReceiver

Remarks

A ISourceGenerator can provide an instance of ISyntaxContextReceiver via a SyntaxReceiverCreator.

The compiler will invoke the SyntaxReceiverCreator prior to generation to obtain an instance of ISyntaxContextReceiver. This instance will have its OnVisitSyntaxNode(GeneratorSyntaxContext) called for every syntax node in the compilation.

The ISyntaxContextReceiver can record any information about the nodes visited. During Execute(GeneratorExecutionContext) the generator can obtain the created instance via the SyntaxContextReceiver property. The information contained can be used to perform final generation.

A new instance of ISyntaxContextReceiver is created per-generation, meaning the instance is free to store state without worrying about lifetime or reuse.

An ISourceGenerator may provide only a single ISyntaxReceiver or ISyntaxContextReceiver, not both.

Methods

OnVisitSyntaxNode(GeneratorSyntaxContext)

Applies to