AnalysisContext クラス

定義

アナライザーを初期化するためのコンテキスト。 アナライザーの初期化では、 を AnalysisContext 使用して、次のいずれかで実行されるアクションを登録できます。

  • コンパイルの開始、
  • コンパイルの終了、
  • コード ドキュメントの解析の完了
  • コード ドキュメントのセマンティック分析の完了、
  • シンボルのセマンティック分析の完了、
  • メソッド本体またはメソッド本体の外部に出現する式のセマンティック分析の開始
  • メソッド本体またはメソッド本体の外部に出現する式のセマンティック分析の完了、
  • 構文ノードのセマンティック分析の完了。
public ref class AnalysisContext abstract
public abstract class AnalysisContext
type AnalysisContext = class
Public MustInherit Class AnalysisContext
継承
AnalysisContext

コンストラクター

AnalysisContext()

アナライザーを初期化するためのコンテキスト。 アナライザーの初期化では、 を AnalysisContext 使用して、次のいずれかで実行されるアクションを登録できます。

  • コンパイルの開始、
  • コンパイルの終了、
  • コード ドキュメントの解析の完了
  • コード ドキュメントのセマンティック分析の完了、
  • シンボルのセマンティック分析の完了、
  • メソッド本体またはメソッド本体の外部に出現する式のセマンティック分析の開始
  • メソッド本体またはメソッド本体の外部に出現する式のセマンティック分析の完了、
  • 構文ノードのセマンティック分析の完了。

プロパティ

MinimumReportedSeverity

この分析コンテキストで報告される診断の最小重大度を示します。 重大度がこの重大度より小さいアナライザー 診断は報告されません。

メソッド

ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags)

このアナライザーの生成されたコードの分析モードを構成します。 構成されていないアナライザーは、生成されたコードに対して適切な既定のモードに既定で設定されます。 アナライザーでは、必要な GeneratedCodeAnalysisFlags 設定を使用してこの API を呼び出することをお勧めします。

EnableConcurrentExecution()

このアナライザーによって登録されたアナライザー アクションの同時実行を有効にします。 同時実行に登録するアナライザーのパフォーマンスは、非同時実行アナライザーよりも優れています。 ただし、このようなアナライザーでは、アクションを並列で正しく実行できるようにする必要があります。

RegisterAdditionalFileAction(Action<AdditionalFileAnalysisContext>)

コード以外のドキュメントごとに実行するアクションを登録します。 追加のファイル アクションは、ドキュメントの にAdditionalText関する を報告Diagnosticします。

RegisterCodeBlockAction(Action<CodeBlockAnalysisContext>)

メソッド本体のセマンティック分析後に実行されるアクション、またはメソッド本体の外部に出現する式を登録します。 コード ブロック アクションは、コード ブロックに関する を報告 Diagnosticします。

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

メソッド本体のセマンティック分析の開始時に実行されるアクション、またはメソッド本体の外部に出現する式を登録します。 コード ブロックの開始アクションでは、他のアクションを登録したり、診断分析で使用する状態情報を収集したりできますが、それ自体はレポート Diagnosticできません。

RegisterCompilationAction(Action<CompilationAnalysisContext>)

完全なコンパイルのために実行するアクションを登録します。 コンパイル アクションは、 に関する を報告 Diagnosticします Compilation

RegisterCompilationStartAction(Action<CompilationStartAnalysisContext>)

コンパイルの開始時に実行されるアクションを登録します。 コンパイル開始アクションでは、他のアクションを登録したり、診断分析で使用する状態情報を収集したりできますが、それ自体はレポート Diagnosticできません。

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

のセマンティック分析 IOperation の完了時に実行されるアクションを適切な Kind で登録します。 操作アクションでは、 に関するIOperationレポートを作成Diagnosticしたり、他の操作アクションまたはコード ブロックの終了アクションで使用される状態情報を収集したりすることもできます。

RegisterOperationAction(Action<OperationAnalysisContext>, OperationKind[])

のセマンティック分析 IOperation の完了時に実行されるアクションを適切な Kind で登録します。 操作アクションでは、 に関するIOperationレポートを作成Diagnosticしたり、他の操作アクションまたはコード ブロックの終了アクションで使用される状態情報を収集したりすることもできます。

RegisterOperationBlockAction(Action<OperationBlockAnalysisContext>)

メソッド本体のセマンティック分析後に実行されるアクション、またはメソッド本体の外部に出現する式を登録します。 操作ブロック アクションは、操作ブロックに関する を報告 Diagnosticします。

RegisterOperationBlockStartAction(Action<OperationBlockStartAnalysisContext>)

メソッド本体のセマンティック分析の開始時に実行されるアクション、またはメソッド本体の外部に出現する式を登録します。 操作ブロックの開始アクションでは、他のアクションを登録したり、診断分析で使用する状態情報を収集したりできますが、それ自体は報告 Diagnosticできません。

RegisterSemanticModelAction(Action<SemanticModelAnalysisContext>)

ドキュメントのセマンティック分析の完了時に実行されるアクションを登録します。これは、ドキュメントの に対して SemanticModel 動作します。 セマンティック モデル アクションは、モデルに関する を報告 Diagnosticします。

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

のセマンティック分析 ISymbol の完了時に実行されるアクションを適切な Kind で登録します。 シンボル アクションは、 についてISymbolを報告Diagnosticします。

RegisterSymbolAction(Action<SymbolAnalysisContext>, SymbolKind[])

のセマンティック分析 ISymbol の完了時に実行されるアクションを適切な Kind で登録します。 シンボル アクションは、 についてISymbolを報告Diagnosticします。

RegisterSymbolStartAction(Action<SymbolStartAnalysisContext>, SymbolKind)

適切な Kind を使用して、 とそのメンバーのセマンティック分析の ISymbol 開始時に実行されるアクションを登録します。

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

のセマンティック分析 SyntaxNode の完了時に実行されるアクションを適切な Kind で登録します。 構文ノード アクションでは、 に関するSyntaxNodeレポートを作成Diagnosticしたり、他の構文ノード アクションまたはコード ブロックの終了アクションで使用される状態情報を収集したりすることもできます。

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

のセマンティック分析 SyntaxNode の完了時に実行されるアクションを適切な Kind で登録します。 構文ノード アクションでは、 に関するSyntaxNodeレポートを作成Diagnosticしたり、他の構文ノード アクションまたはコード ブロックの終了アクションで使用される状態情報を収集したりすることもできます。

RegisterSyntaxTreeAction(Action<SyntaxTreeAnalysisContext>)

コード ドキュメントの解析の完了時に実行されるアクションを登録します。 構文ツリー アクションは、ドキュメントの にSyntaxTree関する を報告Diagnosticします。

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

指定textした に対して、 によって提供されるキャッシュされた値をvalueProvider計算または取得しようとします。 ペア {valueProvider, text} がキーとして機能します。 アナライザー アクションやアナライザー インスタンス間で同じ valueProvider インスタンスを再利用すると、値の再計算を回避することで、アナライザーの全体的なパフォーマンスを向上させることができます。

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

指定textした に対して、 によって提供されるキャッシュされた値をvalueProvider計算または取得しようとします。 ペア {valueProvider, text} がキーとして機能します。 アナライザー アクションやアナライザー インスタンス間で同じ valueProvider インスタンスを再利用すると、値の再計算を回避することで、アナライザーの全体的なパフォーマンスを向上させることができます。

適用対象