Microsoft.SqlServer.Dac.CodeAnalysis 命名空间

名称 说明
CodeAnalysisResult

针对特定模型Code Analysis的结果。 除了分析期间发生的任何错误外,还将包含 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、严重性和要显示的错误消息。

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

SqlRuleProblemSuppressionContext

用于取消 SCA 问题的上下文信息

SuppressedProblemInfo

有关特定源被禁止出现的问题的信息。 此信息包括源名称和应禁止其问题的规则。

接口

名称 说明
ISqlAnalysisRuleMetadata

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

枚举

名称 说明
CodeAnalysisModelValidationMode

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

SqlRuleProblemSeverity

报告问题的消息类型

SqlRuleScope

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