我的代码得到CA1303
warning from Microsoft.Globalization
, "不要将文字作为本地化参数传递",但我的代码实际上并没有传递文字:
private void MyForm_Load(object sender, EventArgs e)
{
UpdateTitle();
}
private void UpdateTitle()
{
Version version = Assembly.GetExecutingAssembly().GetName().Version;
CultureInfo culture = CultureInfo.CurrentUICulture;
this.Text = String.Format(culture, "{0} v{1}.{2} Alpha r{3}", this.Text, version.Major, version.Minor, version.Build);
}
每次加载表单时,此代码都会将表单的标题设置为如下所示:
MyFormNameAsSetInTheDesignerv0.1 阿尔法 r123
(version.build
实际上包含 SVN 修订版,它在每次提交时自动更新,我不使用revision
因为我的版本控制方案仅使用 3 个数字,major.minor.revision
)
但这会触发上述警告,因为它认为我正在从字符串文字设置标题栏文本。其实我已经设置了Localizable = True
在设计器中,这样字符串从资源表中获取.
我不想静态设置表单的标题,因为(特别是在 alpha 和 beta 阶段)我希望它具有动态版本号。
问题是我该怎么做,这样我就不会收到警告(例如,哪些代码将执行我正在做的事情,但根据 FxCop 被认为是正确的,或者我如何抑制该行的代码)。