public override void Initialize(AnalysisContext analysisContext)
        {
            // TODO: Make analyzer thread-safe.
            //analysisContext.EnableConcurrentExecution();

            // Security analyzer - analyze and report diagnostics in generated code.
            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.Analyze | GeneratedCodeAnalysisFlags.ReportDiagnostics);

            analysisContext.RegisterCompilationStartAction(
                (context) =>
            {
                Compilation compilation = context.Compilation;
                var xmlTypes            = new CompilationSecurityTypes(compilation);
                if (ReferencesAnyTargetType(xmlTypes))
                {
                    Version version = SecurityDiagnosticHelpers.GetDotNetFrameworkVersion(compilation);

                    // bail if we are not analyzing project targeting .NET Framework
                    // TODO: should we throw an exception to notify user?
                    if (version != null)
                    {
                        SymbolAndNodeAnalyzer analyzer = GetAnalyzer(context, xmlTypes, version);
                        context.RegisterSymbolAction(analyzer.AnalyzeSymbol, SymbolKind.NamedType);
                    }
                }
            });
        }
        public override void Initialize(AnalysisContext analysisContext)
        {
            // TODO: Make analyzer thread-safe
            //analysisContext.EnableConcurrentExecution();

            // Security analyzer - analyze and report diagnostics in generated code.
            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.Analyze | GeneratedCodeAnalysisFlags.ReportDiagnostics);

            analysisContext.RegisterCompilationStartAction(
                (context) =>
            {
                Compilation compilation = context.Compilation;
                var xmlTypes            = new CompilationSecurityTypes(compilation);

                if (ReferencesAnyTargetType(xmlTypes))
                {
                    Version version = SecurityDiagnosticHelpers.GetDotNetFrameworkVersion(compilation);

                    if (version != null)
                    {
                        context.RegisterOperationBlockStartAction(
                            (c) =>
                        {
                            RegisterAnalyzer(c, xmlTypes, version);
                        });
                    }
                }
            });
        }
コード例 #3
0
        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.RegisterCompilationStartAction(
                (context) =>
            {
                Compilation compilation = context.Compilation;
                var xmlTypes            = new CompilationSecurityTypes(compilation);
                if (ReferencesAnyTargetType(xmlTypes))
                {
                    Version version = SecurityDiagnosticHelpers.GetDotNetFrameworkVersion(compilation);

                    // bail if we are not analyzing project targeting .NET Framework
                    // TODO: should we throw an exception to notify user?
                    if (version != null)
                    {
                        SymbolAndNodeAnalyzer analyzer = GetAnalyzer(context, xmlTypes, version);
                        context.RegisterSymbolAction(analyzer.AnalyzeSymbol, SymbolKind.NamedType);
                    }
                }
            });
        }
コード例 #4
0
        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.RegisterCompilationStartAction(
                (context) =>
            {
                Compilation compilation = context.Compilation;
                var xmlTypes            = new CompilationSecurityTypes(compilation);

                if (ReferencesAnyTargetType(xmlTypes))
                {
                    Version version = SecurityDiagnosticHelpers.GetDotNetFrameworkVersion(compilation);

                    if (version != null)
                    {
                        context.RegisterOperationBlockStartAction(
                            (c) =>
                        {
                            RegisterAnalyzer(c, xmlTypes, version);
                        });
                    }
                }
            });
        }
コード例 #5
0
 public override void Initialize(AnalysisContext analysisContext)
 {
     analysisContext.RegisterCompilationStartAction(
         (context) =>
     {
         Compilation compilation = context.Compilation;
         var xmlTypes            = new CompilationSecurityTypes(compilation);
         if (ReferencesAnyTargetType(xmlTypes))
         {
             Version version = SecurityDiagnosticHelpers.GetDotNetFrameworkVersion(compilation);
             // bail if we are not analyzing project targeting .NET Framework
             // TODO: should we throw an exception to notify user?
             if (version != null)
             {
                 context.RegisterCodeBlockStartAction <TLanguageKindEnum>(
                     (c) =>
                 {
                     RegisterAnalyzer(c, xmlTypes, version);
                 });
             }
         }
     });
 }