Как изменить сообщение по умолчанию, сгенерированное Resharper для проверки пустой строки (null-check) - PullRequest
0 голосов
/ 20 июня 2019

Resharper имеет отличную возможность добавления нулевого контрольного кода для аргументов. Для строк можно добавить string.IsNullOrWhiteSpace, проверьте с помощью ArgumentException. Все хорошо, но мне нужно, чтобы Resharper генерировал другое сообщение, а не Value cannot be null or whitespace, как это делается по умолчанию. Вместо этого я хочу получить сообщение Value cannot be null, empty, or consist only of white-space characters. На вкладке конфигурации Null checking я не нашел ничего связанного с проверками строк. Есть ли другое место для настройки сообщения?

1 Ответ

1 голос
/ 03 июля 2019

Это представляется невозможным в текущей версии ReSharper (2019.1.2).

Я проверил JetBrains.ReSharper.Intentions.CSharp.dll с помощью ildasm, и кажется, что строки "Value cannot be null or whitespace." и "Value cannot be null or empty." жестко закодированы ине настраивается.

JetBrains.ReSharper.Intentions.CSharp.ContextActions.CheckParameters.StringParameterIsNotNullOrEmptyCheckAction get_ExceptionMessage метод:

.method /*06001927*/ family hidebysig specialname virtual 
        instance string  get_ExceptionMessage() cil managed
// SIG: 20 00 0E
{
  // Method begins at RVA 0x82f24
  // Code size       6 (0x6)
  .maxstack  8
  IL_0000:  /* 72   | (70)017EBE       */ ldstr      "Value cannot be null or empty." /* 70017EBE */
  IL_0005:  /* 2A   |                  */ ret
} // end of method StringParameterIsNotNullOrEmptyCheckAction::get_ExceptionMessage

JetBrains.ReSharper.Intentions.CSharp.ContextActions.CheckParameters.StringParameterIsNotNullOrWhitespaceCheckAction get_ExceptionMessage метод:

.method /*0600192D*/ family hidebysig specialname virtual 
        instance string  get_ExceptionMessage() cil managed
// SIG: 20 00 0E
{
  // Method begins at RVA 0x82f5f
  // Code size       6 (0x6)
  .maxstack  8
  IL_0000:  /* 72   | (70)017F4C       */ ldstr      "Value cannot be null or whitespace." /* 70017F4C */
  IL_0005:  /* 2A   |                  */ ret
} // end of method StringParameterIsNotNullOrWhitespaceCheckAction::get_ExceptionMessage

Если эта функцияэто важно для вас, тогда вы можете попробовать и запросить его, заполнив билет в трекере ошибок JetBrains: https://youtrack.jetbrains.com

...