Я слышал, как многие люди говорили, что использовать IoC.Resolve(), это плохая практика, но я никогда не слышал веских причин, почему (если все об тестировании, чем вы можете просто издеваться над контейнером, а вы сделано).
теперь преимущества использования Resolve вместо Constructor Injection заключаются в том, что вам не нужно создавать классы, которые имеют 5 параметров в конструкторе, и всякий раз, когда вы собираетесь создать экземпляр этот класс вам не понадобится, чтобы предоставить ему что-нибудь.