2017-03-01 19 views
-1

我正在調試接收請求並使用WCF發送響應的服務器的代碼。如何指定當服務器通過WCF接收請求時運行的服務器的方法

我從來沒有使用過WCF。我發現當客戶端發送請求時,服務器中的一個方法將被執行。我沒有看到關於該方法的聲明的任何特別之處。

我想知道如何指定服務器在服務器收到請求時運行的方法? 這種方法的聲明是明確指定的(帶有某種修飾符),還是隱含的(通過特殊的方法名稱)?

+0

你能澄清你的問題嗎?你是否問你想知道實際的請求是什麼? –

+0

我在問服務器如何知道要調用哪個方法來處理新接收到的請求。 – Tim

+0

當你說服務器時,你的意思是服務器上運行的WCF服務?你是否有興趣檢查進來的請求? –

回答

1

可調用的方法需要OperationContract屬性。

https://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute(v=vs.110).aspx

您無論是在您的服務實現

[ServiceContract(...)] 
public interface IFoo 
{ 
     [OperationContract(...)] 
     void Bar(); 
} 

public class Foo : IFoo 
{ 
     public void Bar() 
     { 
      ... 
     } 
} 

,或者你可以省略接口,並在實施

[ServiceContract(...)] 
public class Foo : IFoo 
{ 
     [OperationContract(...)] 
     public void Bar() 
     { 
      ... 
     } 
} 

注意直接有屬性的接口屬性該屬性具有Action屬性,該屬性進一步指定客戶端如何調用操作

https://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute.action(v=vs.110).aspx

+0

這是故事的一部分。問題是WCF如何決定某個請求應該調用某個操作。 – CodeCaster

+0

謝謝。該類實現一個接口。在接口中的方法聲明中,聲明開始時有一個'[OperationContract]'。它是否指定了接收到的請求時要調用的方法?這與「[ServiceContract(...)]」有什麼不同? – Tim

+0

@Tim你爲什麼不開始閱讀WCF教程? [MSDN有很多信息](https://msdn.microsoft.com/en-us/library/ms734712(v = vs.110).aspx)。 – CodeCaster

相關問題