.net 什么是;对外部API持乐观态度”;选择做什么?

.net 什么是;对外部API持乐观态度”;选择做什么?,.net,code-contracts,.net,Code Contracts,在代码契约的“静态检查”选项中,有一个名为“对外部API保持乐观”的选项。我找不到有关此选项的任何文档。它是如何影响分析仪的行为的?似乎确实没有关于此选项的任何文档。浏览来源可以提供一些线索。在此链接中,指向布尔值lowScoreForExternal: [OptionDescription("Be optimistic on external API? We will assign proof obligations depending on that

在代码契约的“静态检查”选项中,有一个名为“对外部API保持乐观”的选项。我找不到有关此选项的任何文档。它是如何影响分析仪的行为的?

似乎确实没有关于此选项的任何文档。浏览来源可以提供一些线索。在此链接中,指向布尔值
lowScoreForExternal

[OptionDescription("Be optimistic on external API? 
                    We will assign proof obligations depending on that a low score")]
[DoNotHashInCache]
public bool lowScoreForExternal = true; 
在中,这在初始化期间用于设置为外部程序集中的额外信息分配的分数。启用该选项后,如果引用的程序集与应用于框架程序集的程序集不同,则将应用相同的分数,否则将应用非常高的惩罚

private void InitializeDefaultValuesForContextsOfCalleeAssumeCanDischarge
  (bool lowScoreForExternalAPI)
{
   // ...
ScoreCalleeAssumeExtraInfoDeclaredInAFrameworkAssembly = .05;
ScoreCalleeAssumeExtraInfoDeclaredInADifferentAssembly = lowScoreForExternalAPI ?
        ScoreCalleeAssumeExtraInfoDeclaredInAFrameworkAssembly : 100.0;
似乎使用此设置会迫使分析器对外部程序集的代码质量采取与框架程序集类似的信任级别

这似乎是该变量的唯一用途-它被传递给构造函数中的
WarningScoresManager
,不在其他任何地方使用