0
DiagnosticAnalyzer를 사용하여 VS2015 용 분석기를 작성했습니다. 특정 인터페이스를 구현하는 클래스/구조체가 생성자에게 특정 서명을 제공하는지 여부도 확인해야합니다. 나는이 규칙을 어떻게 등록 할 것인가에 대해 약간의 상실감이있다.Roslyn 진단 등록
첫 번째 두 규칙은 특정 메서드 나 생성자에만 적용되며 등록 방법이 잘 작동하지만 수정본을 검색 할 수있을 정도로 자주 호출되는 동안이 클래스 전체 규칙이 호출되는 횟수를 최소화하려면 어떻게해야합니까?
public override void Initialize(AnalysisContext context)
{
// Rule A applies to any method/constructor call.
context.RegisterSyntaxNodeAction(LiteralInMethodCallViolation,
SyntaxKind.InvocationExpression);
context.RegisterSyntaxNodeAction(LiteralInMethodCallViolation,
SyntaxKind.ObjectCreationExpression);
// Rule B applies to entire classes/structs.
context.RegisterSyntaxNodeAction(MissingConstructorViolation,
SyntaxKind.????);
}
편집 : context.RegisterCodeBlockAction (...)를 사용하여 더 적절한 것 같다,하지만 내가 할 수있는 유일한 블록 방법과 필드 선언이다.