Microsoft.SqlServer.Dac.CodeAnalysis 命名空间

CodeAnalysisResult

针对特定模型进行代码分析的结果。 除了分析期间发生的任何错误外,还将包括 SqlRuleProblem找到的任何

CodeAnalysisRuleSettings

用于配置分析期间使用的规则的设置。

在分析开始之前,此设置对象将应用到分析服务发现的规则。 如果 DisableRulesNotInSettings 设置为 true,则这些设置中未包含的任何规则都将禁用,并且分析期间不会运行。

通过对引擎返回的规则调用 ApplySettingsToRules(IEnumerable<RuleConfiguration>) 方法来应用这些设置。

CodeAnalysisService

用于针对模型运行代码分析并向调用方提供结果的服务。

请注意,此类不是线程安全的,因为不支持同时对 Analyze(TSqlModel) 进行多次调用。 但是,可以从一个线程调用 Cancel(),同时,有另一个线程正在等待 Analyze(TSqlModel) 方法完成。

CodeAnalysisServiceFactory

支持创建对象的 CodeAnalysisService 工厂类。

CodeAnalysisServiceSettings

CodeAnalysisService 定义可选的配置设置。 这可以确定要运行哪些规则,如何抑制特定的问题,以及要将结果保存到哪个位置。

也可以在创建 CodeAnalysisService 后在其上指定这些设置,但此处提供这些设置是为了使构造更方便。

ExportCodeAnalysisRuleAttribute

定义规则导出的属性,以及有关该规则的元数据。 实现 ISqlAnalysisRuleMetadata,应在导入程序端使用它以确保类型一致性

ProblemSuppressionException

表示运行规则问题抑制测试时发生的异常。

ProjectProblemSuppressor

表示 SSDT 项目使用问题抑制器。 可将 ShouldSuppressProblem 方法传递给 ShouldSuppressProblem 以使用此类。

这将从根目录中名称与 SuppressionFilename 匹配的文件(“StaticCodeAnalysis.SuppressMessages.xml”)读取抑制信息。

所有相对路径都将相对于构造函数中定义的项目文件夹进行解析

RuleConfiguration

指定如何配置规则 - 是要启用还是禁用? 要为规则应用哪种严重性?

RuleDescriptor

描述规则引擎发现的规则,并支持配置其属性。 描述符从 RuleConfiguration 继承属性,以支持在分析过程中启用/禁用规则,以及指定由规则创建的问题的严重性。

外部用户不能将此类用作子类 - RuleDescriptor 的实例由分析服务创建。

RuleException

表示在代码分析运行期间可能发生的异常

SqlAnalysisRule

所有类型的分析规则的基类。 分析规则将分析模型/模型元素,并返回分析过程中发现的问题列表。

SqlCodeAnalysisRule

SQL 静态代码分析规则的基类。 分析规则将分析模型/模型元素,并返回分析过程中发现的问题列表。

实现类必须在代码分析期间要发现和使用的类定义中定义 ExportCodeAnalysisRuleAttribute

SqlRuleExecutionContext

定义分析时所需的字段,包括架构模型以及要分析的模型元素。

SqlRuleProblem

描述某个规则在分析期间发现的问题。 包含相关信息,例如,发现问题的规则、导致问题的 SqlObject、问题严重性以及要显示的错误消息。

源位置信息(源名称、起始行和列)最初是根据传入构造函数的 ModelElementFragment 推断的。 请注意,如果 Fragment 传入 ,则将使用 的 TSqlFragment 起始行/列 (如果存在) ,则 TSqlObject使用 的值 ((如果存在) )。 请注意,某些模型(例如,从 dacpac 生成的模型)可能没有源位置信息。

SqlRuleProblemSuppressionContext

用于抑制 SCA 问题的上下文信息

SuppressedProblemInfo

有关为特定源抑制的问题的信息。 此信息包括源名称,以及应抑制其问题的规则。

接口

ISqlAnalysisRuleMetadata

用于描述规则的元数据 - 规则的命名空间、ID、范围,等等。

枚举

CodeAnalysisModelValidationMode

确定在代码分析之前对模型执行的验证。

SqlRuleProblemSeverity

用于报告问题的消息类型

SqlRuleScope

静态代码分析规则检查的范围。