У нас есть программа с тысячами строк, таких как:
Console.Write("{0},{1} - {2}", e1, "My custom error", e2); // Write a custom error
Однако следующее вызовет ошибку, так как "{3}" больше, чем число параметров:
Console.Write("{0},{1} - {3}", e1, "My custom error", e2); // Write a custom error
Как я могу отсканировать весь мой проект, чтобы забрать его во время компиляции?
Обновление:
К сожалению, ReSharper не будет работать. Я создал свой собственный класс журналирования "w", который вызывает Console.Write и другие журналы за кулисами. ReSharper обнаруживает ошибки в «Console.Write», но игнорирует все параметры для указанного метода ведения журнала.
Обновление:
FXCop не распознает ошибки такого рода. Это удивительно - почему бы не обнаружить очевидную ошибку, которая приведет к сбою всей программы за исключением?
Обновление:
Спасибо за подсказку @adudley - в итоге я заменил все экземпляры «Console.Write» и «String.Format» в классе ведения журнала вызовами специализированных версий с try / catch для любых ошибок. Это позволяет избежать переполнения всей программы, если вызывается одна редко используемая функция регистрации с неверными параметрами. Я бы лучше сказал программе обеспечить ее пуленепробиваемость, а не вручную проверять 1000 функций регистрации на наличие трудно обнаруживаемых ошибок.