Мой код получает предупреждение CA1303
от 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);
}
Этот код устанавливает заголовок формы примерно так: каждый раз, когда она загружается:
MyFormNameAsSetInTheDesigner v0.1 Alpha r123
(version.build
фактически содержит ревизию SVN, которая автоматически обновляется при каждой фиксации, я не использую revision
, потому что моя схема управления версиями использует только 3 числа, major.minor.revision
)
Но это вызывает вышеупомянутое предупреждение , потому что он думает, что я устанавливаю текст заголовка из строкового литерала.На самом деле я установил Localizable = True
в конструкторе, чтобы строка выбиралась из таблицы ресурсов .
. Я не хочу устанавливать заголовок формы статически, потому что (особеннона этапах альфа и бета) я хочу, чтобы у него были динамические номера версий.
Вопрос в том, что мне делать, чтобы я не получал предупреждение (например, какой код будет делать то, что я делаю)но считаться правильным для FxCop, или как я могу подавить его для этой строки).