Если у вас нет интерфейса службы, вы должны, по крайней мере, иметь представление о том, как выглядят сообщения, ожидаемые сервером; в противном случае это будет довольно сложно сделать:)
Но, безусловно, есть способ сделать это. Вы можете начать с создания необработанного сообщения, которое сервер ожидает в качестве ввода, и создать его в объекте Message (я имею в виду System.ServiceModel.Channels.Message). Убедитесь, что вы установили для него все необходимые заголовки, в зависимости от того, какую привязку вы ожидаете использовать для вызова клиента (например, установка правильных учетных данных, правильного MessageVersion и т. Д.).
Затем вы можете просто создать фабрику каналов, используя одну из стандартных общих форм каналов, таких как IRequestChannel или IInputChannel (для односторонних услуг), и использовать фабрику каналов для создания нового канала и вызова службы. То есть что-то вроде:
Message input = Message.CreateMessage( .... );
ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, endpoint);
IRequestChannel channel - factory.CreateChannel();
Message output = channel.Send(input);