AnalysisContext Classe

Definição

Contexto para inicializar um analisador. A inicialização do analisador pode usar um AnalysisContext para registrar ações a serem executadas em qualquer um dos seguintes:

  • início da compilação,
  • fim da compilação,
  • conclusão da análise de um documento de código,
  • conclusão da análise semântica de um documento de código,
  • conclusão da análise semântica de um símbolo,
  • início da análise semântica de um corpo de método ou uma expressão que aparece fora de um corpo de método,
  • conclusão da análise semântica de um corpo de método ou uma expressão que aparece fora de um corpo de método, ou
  • conclusão da análise semântica de um nó de sintaxe.
public ref class AnalysisContext abstract
public abstract class AnalysisContext
type AnalysisContext = class
Public MustInherit Class AnalysisContext
Herança
AnalysisContext

Construtores

AnalysisContext()

Contexto para inicializar um analisador. A inicialização do analisador pode usar um AnalysisContext para registrar ações a serem executadas em qualquer um dos seguintes:

  • início da compilação,
  • fim da compilação,
  • conclusão da análise de um documento de código,
  • conclusão da análise semântica de um documento de código,
  • conclusão da análise semântica de um símbolo,
  • início da análise semântica de um corpo de método ou uma expressão que aparece fora de um corpo de método,
  • conclusão da análise semântica de um corpo de método ou uma expressão que aparece fora de um corpo de método, ou
  • conclusão da análise semântica de um nó de sintaxe.

Propriedades

MinimumReportedSeverity

Indica a severidade mínima de diagnóstico relatada para esse contexto de análise. Os diagnóstico do analisador com gravidade menor que essa gravidade não são relatados.

Métodos

ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags)

Configure o modo de análise do código gerado para este analisador. Os analisadores não configurados usarão como padrão um modo padrão apropriado para o código gerado. É recomendável que o analisador invoque essa API com a configuração necessária GeneratedCodeAnalysisFlags .

EnableConcurrentExecution()

Habilite a execução simultânea de ações do analisador registradas por este analisador. Um analisador que se registra para execução simultânea pode ter um desempenho melhor do que um analisador não simultâneo. No entanto, esse analisador deve garantir que suas ações possam ser executadas corretamente em paralelo.

RegisterAdditionalFileAction(Action<AdditionalFileAnalysisContext>)

Registre uma ação a ser executada para cada documento que não seja de código. Uma ação de arquivo adicional relata Diagnostico AdditionalText de um documento.

RegisterCodeBlockAction(Action<CodeBlockAnalysisContext>)

Registre uma ação a ser executada após a análise semântica de um corpo do método ou uma expressão que aparece fora de um corpo do método. Uma ação de bloco de código relata Diagnosticos blocos de código.

RegisterCodeBlockStartAction<TLanguageKindEnum>(Action<CodeBlockStartAnalysisContext<TLanguageKindEnum>>)

Registre uma ação a ser executada no início da análise semântica de um corpo de método ou uma expressão que aparece fora de um corpo de método. Uma ação de início de bloco de código pode registrar outras ações e/ou coletar informações de estado a serem usadas na análise de diagnóstico, mas não pode relatar nenhuma Diagnostics.

RegisterCompilationAction(Action<CompilationAnalysisContext>)

Registre uma ação a ser executada para uma compilação completa. Uma ação de compilação relata Diagnosticsobre o Compilation.

RegisterCompilationStartAction(Action<CompilationStartAnalysisContext>)

Registre uma ação a ser executada no início da compilação. Uma ação de início da compilação pode registrar outras ações e/ou coletar informações de estado a serem usadas na análise de diagnóstico, mas não pode relatar nenhuma Diagnostics.

RegisterOperationAction(Action<OperationAnalysisContext>, ImmutableArray<OperationKind>)

Registre uma ação a ser executada após a conclusão da análise semântica de um IOperation com um Tipo apropriado. Uma ação de operação pode relatar Diagnosticsobre IOperations e também pode coletar informações de estado a serem usadas por outras ações de operação ou ações de fim de bloco de código.

RegisterOperationAction(Action<OperationAnalysisContext>, OperationKind[])

Registre uma ação a ser executada após a conclusão da análise semântica de um IOperation com um Tipo apropriado. Uma ação de operação pode relatar Diagnosticsobre IOperations e também pode coletar informações de estado a serem usadas por outras ações de operação ou ações de fim de bloco de código.

RegisterOperationBlockAction(Action<OperationBlockAnalysisContext>)

Registre uma ação a ser executada após a análise semântica de um corpo do método ou uma expressão que aparece fora de um corpo do método. Uma ação de bloco de operação relata Diagnosticos blocos de operação.

RegisterOperationBlockStartAction(Action<OperationBlockStartAnalysisContext>)

Registre uma ação a ser executada no início da análise semântica de um corpo de método ou uma expressão que aparece fora de um corpo de método. Uma ação de início de bloco de operação pode registrar outras ações e/ou coletar informações de estado a serem usadas na análise de diagnóstico, mas não pode relatar nenhuma Diagnostics.

RegisterSemanticModelAction(Action<SemanticModelAnalysisContext>)

Registre uma ação a ser executada após a conclusão da análise semântica de um documento, que funcionará no SemanticModel do documento. Uma ação de modelo semântico relata Diagnosticsobre o modelo.

RegisterSymbolAction(Action<SymbolAnalysisContext>, ImmutableArray<SymbolKind>)

Registre uma ação a ser executada após a conclusão da análise semântica de um ISymbol com um Tipo apropriado. Uma ação de símbolo relata Diagnostics sobre ISymbols.

RegisterSymbolAction(Action<SymbolAnalysisContext>, SymbolKind[])

Registre uma ação a ser executada após a conclusão da análise semântica de um ISymbol com um Tipo apropriado. Uma ação de símbolo relata Diagnostics sobre ISymbols.

RegisterSymbolStartAction(Action<SymbolStartAnalysisContext>, SymbolKind)

Registre uma ação a ser executada no início da análise semântica de um ISymbol e de seus membros com um Tipo apropriado.

RegisterSyntaxNodeAction<TLanguageKindEnum>(Action<SyntaxNodeAnalysisContext>, ImmutableArray<TLanguageKindEnum>)

Registre uma ação a ser executada após a conclusão da análise semântica de um SyntaxNode com um Tipo apropriado. Uma ação de nó de sintaxe pode relatar Diagnosticsobre SyntaxNodes e também pode coletar informações de estado a serem usadas por outras ações de nó de sintaxe ou ações de fim de bloco de código.

RegisterSyntaxNodeAction<TLanguageKindEnum>(Action<SyntaxNodeAnalysisContext>, TLanguageKindEnum[])

Registre uma ação a ser executada após a conclusão da análise semântica de um SyntaxNode com um Tipo apropriado. Uma ação de nó de sintaxe pode relatar Diagnosticsobre SyntaxNodes e também pode coletar informações de estado a serem usadas por outras ações de nó de sintaxe ou ações de fim de bloco de código.

RegisterSyntaxTreeAction(Action<SyntaxTreeAnalysisContext>)

Registre uma ação a ser executada na conclusão da análise de um documento de código. Uma ação de árvore de sintaxe relata Diagnostico SyntaxTree de um documento.

TryGetValue<TValue>(AdditionalText, AdditionalTextValueProvider<TValue>, TValue)

Tenta calcular ou obter o valor armazenado em cache fornecido pelo fornecido valueProvider para o determinado text. Observe que o par {valueProvider, text} atua como a chave. Reutilizar a mesma valueProvider instância em ações do analisador e/ou instâncias do analisador pode melhorar o desempenho geral do analisador evitando a recomputação dos valores.

TryGetValue<TValue>(SourceText, SourceTextValueProvider<TValue>, TValue)

Tenta calcular ou obter o valor armazenado em cache fornecido pelo fornecido valueProvider para o determinado text. Observe que o par {valueProvider, text} atua como a chave. Reutilizar a mesma valueProvider instância em ações do analisador e/ou instâncias do analisador pode melhorar o desempenho geral do analisador evitando a recomputação dos valores.

Aplica-se a