2017-03-01 18 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

相关问题