views:

1469

answers:

3

Can a single WCF service offer multiple interfaces, and if so how would you express this in app.config?

I mean one services offering several Interfaces on one endpoint.

+5  A: 

First you need to be clear what a service is. Do you mean a single endpoint, or multiple endpoints in the same host?

Assuming you mean a single endpoint, then yes, but with a little work. An endpoint can only implement a single interface; so what you need to do is combine all the interfaces you want to implement into a single interface

public interface IMyInterface : IInterface1, IInterface2

and then implement them all inside your implementation class. What you cannot do is have multiple interfaces and multiple implementations magically merge into a single endpoint.

blowdart
Thanks, that's exactly what I was asking.
Peter Wone
+1  A: 

With WCF, you can:

  • have one service implementation class that implements multiple service interfaces
  • have one service implementation class exposed through multiple endpoints, e.g. one service endpoint using BasicHttpBinding for maximum interoperability and another endpoint using NetTcpBinding for maximum performance (with WCF clients).
cruizer
A: 

Here's how you could expose the same interface on two different endpoints in your App.Config if that's waht you are asking.

<service name="Service1">    
   <endpoint address="http://localhost:8001/service1.asmx" binding="basicHttpBinding" contract="IService" />
</service>
<service name="Service2">    
  <endpoint address="http://localhost:8002/service2.asmx" binding="basicHttpBinding"  contract="IService" />
</service>
sipwiz