InitializationContext.RegisterForSyntaxNotifications Method
Definition
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.
Register a SyntaxReceiverCreator for this generator, which can be used to create an instance of an ISyntaxReceiver.
public void RegisterForSyntaxNotifications (Microsoft.CodeAnalysis.SyntaxReceiverCreator receiverCreator);
member this.RegisterForSyntaxNotifications : Microsoft.CodeAnalysis.SyntaxReceiverCreator -> unit
Public Sub RegisterForSyntaxNotifications (receiverCreator As SyntaxReceiverCreator)
Parameters
- receiverCreator
- SyntaxReceiverCreator
A SyntaxReceiverCreator that can be invoked to create an instance of ISyntaxReceiver
Remarks
This method allows generators to be 'syntax aware'. Before each generation the receiverCreator
will be invoked to create an instance of ISyntaxReceiver. This receiver will have its OnVisitSyntaxNode(SyntaxNode) invoked for each syntax node in the compilation, allowing the receiver to build up information about the compilation before generation occurs.
During Execute(SourceGeneratorContext) the generator can obtain the ISyntaxReceiver instance that was created by accessing the SyntaxReceiver property. Any information that was collected by the receiver can be used to generate the final output.
A new instance of ISyntaxReceiver is created per-generation, meaning there is no need to manage the lifetime of the receiver or its contents.