Ответ 1
В игре есть неотъемлемый компромисс.
Как минимум, вы хотите указать CultureInfo для использования InvariantCulture всякий раз, когда вы делаете что-либо внутри своей программы. Например, использование этого параметра с помощью Serialization заставляет представление данных всегда быть одинаковым, поэтому вам не нужно беспокоиться о проблемах интернационализации с вашими внутренними форматами данных.
Говоря об этом, определение этого везде имеет некоторые преимущества - в основном, с точки зрения принуждения к тому, чтобы вы правильно справлялись с этим. Внутренняя работа программы и работа с пользовательским интерфейсом должны иметь определенную культуру (если вы хотите правильно локализовать свое приложение). В результате сложная программа имеет тенденцию требовать, чтобы это было указано повсюду, так как оставить "по умолчанию" опасным в лучшем случае и, как правило, вводить ошибки со временем.
Однако, указав это, как вы заметили, имеет тенденцию увеличивать размер вашего кода и потенциально уменьшать читаемость. Это приводит к компромиссному пониманию и ремонтопригодности посредством более короткого кода в сравнении с надлежащей интернационализацией, локализацией и ремонтопригодностью, поскольку они более явны во всем мире.
По моему мнению, здесь нет "правильного" ответа - это действительно зависит от вашего приложения. Если ваше приложение полностью связано с презентацией и не делает много манипуляций с данными, особенно не с любым типом самоконтролируемого хранилища файлов, установка текущей культуры (и культуры ui) однажды может быть прекрасной. Я обнаружил, что более сложные приложения, как правило, не работают так же, но в этом случае предложения FxCop о том, чтобы указать это везде, выглядят более привлекательными.