2011-05-02 32 views
0
I have two different Interface service that I'm using 
    1. IService1 
    2. IService2 

I define two files 
    1. IService1.cs => that hold the Interface of IService1 
    2. IService2.cs => that hold the Interface of IService2 

I also define two different .cvs 
    1. IService1.cvs=> that hold the Interface of IService1 
    2. IService2.cvs=> that hold the Interface of IService2 

可以有這個文件結構或更好的將所有契約接口放在一個文件中並有一個.cvs文件嗎?在不同的.svc文件中定義不同的接口?

回答

1

它是.svc文件。

如果您有兩個.svc文件,您將公開兩個不同的服務(兩個類),其中每個服務都有單個端點,自己的WSDL和它自己的行爲(如安全性,限制等)。

如果您有一個.svc文件,則該服務必須實現兩個接口(一個類),並且它將具有在具有單一服務行爲的相同WSDL中描述的兩個不同端點。

我會跳過手動修改.svc文件指向相同類的部分,因爲它沒有真正的好處,它會使事情變得更加複雜(配置是針對每個服務類而不是每個.svc文件)。

所以它真的取決於你有什麼要求?

+0

.svc文件 - 謝謝。 – Yanshof 2011-05-02 08:55:15

+0

可以說,我想公開IService1 basicHttpBinding和IService2只有NamedPipeBinding - 我需要定義它們都在同一個服務或需要在配置文件中定義兩個服務? – Yanshof 2011-05-02 09:02:17

+1

我可能會公開每個單獨的.svc,因爲WCF中的NamedPipes不能從其他機器訪問,並且因爲端點不應該在暴露給遠程客戶端的WSDL中。 – 2011-05-02 09:08:10

1

這取決於。

如果IService1IService2的實施是在同一個類:

public class MyService : IService1, IService2 
{ 
    ... 
} 

然後一個.svc文件,你需要兩個端點

如果他們是在單獨的類:

public class MyService1 : IService1 
{ 
    ... 
} 

public class MyService2 : IService2 
{ 
    ... 
} 

然後2 .SVC文件

相關問題