使用英语阅读

通过


GetEndpointName

将当前侦听终结点的名称推送到堆栈上。

语法

  
<wcf:Operation Name="GetEndpointName" />  

参数

无。

推送的值

包含当前侦听终结点名称的字符串。

注解

请务必注意,对于在 App.config 文件中指定的相同终结点名称,客户端和服务器应用程序将返回不同的名称。

对于客户端应用程序,GetEndPointName 操作检索到的终结点名称是后跟下划线和约定名称的绑定名称。

例如,如果未设置 ServiceEndpoint 上的 Name 属性,但绑定已设置,则名称将设置为 <binding>_<contract>。

如果未设置名称和绑定,则 Name 属性将设置为 <协定>。

对于服务而言,检索到的名称是在 App.config 文件中指定的终结点名称。

示例

下面的示例筛选器表达式为 PurchaseOrder_EP 终结点的 ServiceRequest 约定调用点的 Receive 操作定义了侦听。 这是通过以下逻辑步骤完成的:

  1. 将当前操作名称与“Receive”进行比较,并将结果(True 或 False)推送到堆栈上。

  2. 将当前服务约定调用点与“ServiceRequest”进行比较,并将结果(True 或 False)推送到堆栈上。 现在堆栈上有两个布尔值。

  3. 使用布尔 运算比较上述步骤的结果,并在堆栈上推送结果。 这样,堆栈上就只剩一个布尔值。

  4. 将当前终结点与“PurchaseOrder_EP”进行比较,并将结果(True 或 False)推送到堆栈上。 现在堆栈上有两个布尔值。

  5. 最后,使用布尔 运算比较堆栈上的两个布尔值,并将结果推送到堆栈上。 这会将终结点比较的结果与一个布尔值核对,如果操作名称与约定调用点成功匹配,则此布尔值为 True,否则为 False。

<ic:Filter>  
  <ic:Expression>  
    <wcf:Operation Name="GetOperationName" />  
    <ic:Operation Name="Constant">  
      <ic:Argument>Receive</ic:Argument>  
    </ic:Operation>  
    <ic:Operation Name="Equals" />  
    <wcf:Operation Name="GetServiceContractCallPoint" />  
    <ic:Operation Name="Constant">  
      <ic:Argument>ServiceRequest</ic:Argument>  
    </ic:Operation>  
    <ic:Operation Name="Equals" />  
    <ic:Operation Name="And" />  
    <wcf:Operation Name="GetEndpointName" />  
    <ic:Operation Name="Constant">  
      <ic:Argument>PurchaseOrder_EP</ic:Argument>  
    </ic:Operation>  
    <ic:Operation Name="Equals" />  
    <ic:Operation Name="And" />  
  </ic:Expression>  
</ic:Filter>  

另请参阅

Windows Communication Foundation 中的操作