Предполагается ли, что ваш метод создает ISomething или устанавливает его состояние и возвращает ISomething с инициализированным состоянием? (или это должна быть одна операция?)
Если в вашем классе есть метод, который отвечает за создание ISomething, то он является ISomethingFactory (если у вас нет смешанных проблем). В этом случае у него есть логика, чтобы выбрать правильную реализацию ISomething и создать ее, поэтому вам не нужно слишком беспокоиться об аспекте IoC.
Однако, если задача этого класса , а не создание соответствующего ISomething, то я, вероятно, передам фабрику. Проблема в том, что в большинстве случаев ваш DI-контейнер должен быть в состоянии сделать это для вас (вызвать фабрику, чтобы получить соответствующее ISomething), поэтому, видя метод, который должен создать ISomething, который не является фабрикой, заставляет меня нервничать.
Попытка дать архитектурное руководство всегда непросто на таком форуме, как этот, но с ограниченным вкладом я бы сказал, что у вас есть фабрика, о которой вы не знали, что она фабрика, или у вас есть проблема.