+1 за DI.
Пусть за вас контейнер думает, какие зависимости надо создавать в каком порядке.
Единственный подводный камень при таком подходе - возможное существование циклических зависимостей - вот это придется лечить перепланировкой архитектуры, т.к. это явный bad design.
Меня иногда так удивляет именование методов в BCL... Ну кто мог додуматься назвать его Remove??
Я с C# дружу с универа, но уже много лет использую кастомный extension-метод Truncate, основанный на Substring, а про этот впервые слышу. Век живи - век учись...
Но все равно его нужно оборачивать, иначе при слишком короткой строке - вывалит эксепшен. Что-то вроде:
public static string Truncate(string source, int maxLength)
{
if (string.IsNullOrEmpty(source) || source.Length <= maxLength)
{
return source;
}
return source.Remove(maxLength);
}
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Пусть за вас контейнер думает, какие зависимости надо создавать в каком порядке.
Единственный подводный камень при таком подходе - возможное существование циклических зависимостей - вот это придется лечить перепланировкой архитектуры, т.к. это явный bad design.