Каковы ваши критерии выбора?
Функционально, в конце концов, оба подхода работают просто отлично и в основном дают одинаковый результат.
На чем вы хотите основывать свое решение?
Мой совет: выбирайте стиль, который вам удобнее! Подход с ChannelFactory<IService>
, вероятно, требует, чтобы вы писали все меньше и меньше обыденного кода - так что, возможно, это было бы небольшим преимуществом для этого подхода.
Оба подхода требуют, чтобы у вас был .NET на обоих концах канала, и чтобы служба и клиент совместно использовали общую сборку с контрактами на обслуживание и операции в них - поскольку клиент должен знать хотя бы интерфейс службы, чтобы возможность использовать любой из двух способов подключения к услуге.