• Как избежать проблем с Execution Order?

    @zhaparoff
    +1 за DI.
    Пусть за вас контейнер думает, какие зависимости надо создавать в каком порядке.
    Единственный подводный камень при таком подходе - возможное существование циклических зависимостей - вот это придется лечить перепланировкой архитектуры, т.к. это явный bad design.
  • Как урезать строку с конца в C#?

    @zhaparoff
    Меня иногда так удивляет именование методов в 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);
    }