다음을 통해 공유


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>)

적절한 Kind를 사용하여 의 의미 체계 분석을 IOperation 완료할 때 실행할 작업을 등록합니다. 작업 작업은 의 정보를 IOperation보고Diagnostic할 수 있으며 다른 작업 작업 또는 코드 블록 엔드 작업에서 사용할 상태 정보를 수집할 수도 있습니다.

RegisterOperationAction(Action<OperationAnalysisContext>, OperationKind[])

적절한 Kind를 사용하여 의 의미 체계 분석을 IOperation 완료할 때 실행할 작업을 등록합니다. 작업 작업은 의 정보를 IOperation보고Diagnostic할 수 있으며 다른 작업 작업 또는 코드 블록 엔드 작업에서 사용할 상태 정보를 수집할 수도 있습니다.

RegisterOperationBlockAction(Action<OperationBlockAnalysisContext>)

메서드 본문 또는 메서드 본문 외부에 나타나는 식의 의미 체계 분석 후에 실행할 작업을 등록합니다. 작업 블록 작업은 작업 블록에 대해 를 보고 Diagnostic합니다.

RegisterOperationBlockStartAction(Action<OperationBlockStartAnalysisContext>)

메서드 본문 또는 메서드 본문 외부에 나타나는 식의 의미 체계 분석을 시작할 때 실행할 작업을 등록합니다. 작업 블록 시작 작업은 다른 작업을 등록하거나 진단 분석에 사용할 상태 정보를 수집할 수 있지만 자체에서 보고할 Diagnostic수는 없습니다.

RegisterSemanticModelAction(Action<SemanticModelAnalysisContext>)

문서의 의미 체계 분석이 완료될 때 실행할 작업을 등록합니다. 이 작업은 문서의 에서 SemanticModel 작동합니다. 의미 체계 모델 작업은 모델에 대해 를 보고 Diagnostic합니다.

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

적절한 Kind를 사용하여 의 의미 체계 분석을 ISymbol 완료할 때 실행할 작업을 등록합니다. 기호 동작은 s에 대해 ISymbol를 보고Diagnostic합니다.

RegisterSymbolAction(Action<SymbolAnalysisContext>, SymbolKind[])

적절한 Kind를 사용하여 의 의미 체계 분석을 ISymbol 완료할 때 실행할 작업을 등록합니다. 기호 동작은 s에 대해 ISymbol를 보고Diagnostic합니다.

RegisterSymbolStartAction(Action<SymbolStartAnalysisContext>, SymbolKind)

및 해당 멤버의 의미 체계 분석을 ISymbol 시작할 때 실행할 작업을 적절한 종류로 등록합니다.

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

적절한 종류를 사용하여 의 의미 체계 분석을 SyntaxNode 완료할 때 실행할 작업을 등록합니다. 구문 노드 작업은 에 대한 SyntaxNode를 보고Diagnostic할 수 있으며 다른 구문 노드 작업 또는 코드 블록 끝 작업에서 사용할 상태 정보를 수집할 수도 있습니다.

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

적절한 종류를 사용하여 의 의미 체계 분석을 SyntaxNode 완료할 때 실행할 작업을 등록합니다. 구문 노드 작업은 에 대한 SyntaxNode를 보고Diagnostic할 수 있으며 다른 구문 노드 작업 또는 코드 블록 끝 작업에서 사용할 상태 정보를 수집할 수도 있습니다.

RegisterSyntaxTreeAction(Action<SyntaxTreeAnalysisContext>)

코드 문서 구문 분석이 완료될 때 실행할 작업을 등록합니다. 구문 트리 작업은 문서의 에 대해 SyntaxTree 를 보고Diagnostic합니다.

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

지정된 text에 대해 지정된 valueProvider 에서 제공하는 캐시된 값을 계산하거나 가져옵니다. {valueProvider, text} 쌍이 키 역할을 합니다. 분석기 작업 및/또는 분석기 인스턴스에서 동일한 valueProvider instance 다시 사용하면 값의 재계산을 방지하여 전반적인 분석기 성능을 향상시킬 수 있습니다.

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

지정된 text에 대해 지정된 valueProvider 에서 제공하는 캐시된 값을 계산하거나 가져옵니다. {valueProvider, text} 쌍이 키 역할을 합니다. 분석기 작업 및/또는 분석기 인스턴스에서 동일한 valueProvider instance 다시 사용하면 값의 재계산을 방지하여 전반적인 분석기 성능을 향상시킬 수 있습니다.

적용 대상