Если вы действительно должны иметь такие служебные функции (вы знаете, что не должны, но иногда это лучшее / простое решение), я предлагаю иметь их либо в ядре (при условии, что каждый отдельный проект в любом случае зависит от ядра) ) или в отдельной утилите сборки. Если вы не хотите, чтобы отдельная сборка лежала вокруг, рассмотрите возможность использования ILMerge.
С классификатором не должно быть никаких проблем. Я предлагаю не помещать несвязанную функцию в класс Utils
, а использовать, например, Formatting
класс для всех функций форматирования. С другой стороны, как предположил s_ruchit, методы расширения (например, для строкового класса) также могут пригодиться.
(Я упоминал, что этот редактор §% $ & MarkDown не позволяет вводить символ [at] на немецкой раскладке клавиатуры, потому что вместо этого он создает цитату? Вздох.)