不像ASMX實施WCF需要你來實現它的界面。我不太明白這個設計背後的原因。接口爲2類之間的合同......有了這樣說,你經常有satisfry相同的接口,但正在實施不同的2 WCF服務?爲什麼.NET WCF服務所需要的接口
另一個意見,在MSDN強烈建議要做到這一點:
MyService service = new MyService();
try {
service.DoWork();
}
catch(Exception) {}
finally {
service.Close();
}
所以我們說如果我要使用它是這樣的接口,插入我的服務:
public MyComponent : IDisposable
{
readonly IMyService service = null;
public MyComponent(IMyService service) {
this.service = service;
}
public DoWork()
{
//some additional code.
this.service.DoWork();
}
public void Dispose()
{
//The Interface does not have the Close method,
//So doing this defeats the whole purpose of polymorphysm
(this.service as MyService).Close(); //Silly.
}
}
你怎麼拿與WCF的接口的優點?
其實,至少有一件事阻止了你:繼承。您可以在從多個接口繼承的接口上應用[ServiceContract],同時還應用[ServiceContract],使服務合約變爲模塊化。如果你將一個[ServiceContract]應用到一個類中,它既不能繼承也不能繼承 - 你被這個類自己定義的任何契約所困住。 – Suncat2000