GetEndpointName
将当前侦听终结点的名称推送到堆栈上。
<wcf:Operation Name="GetEndpointName" />
无。
包含当前侦听终结点名称的字符串。
请务必注意,对于在 App.config 文件中指定的相同终结点名称,客户端和服务器应用程序将返回不同的名称。
对于客户端应用程序,GetEndPointName 操作检索到的终结点名称是后跟下划线和约定名称的绑定名称。
例如,如果未设置 ServiceEndpoint 上的 Name 属性,但绑定已设置,则名称将设置为 <binding>_<contract>。
如果未设置名称和绑定,则 Name 属性将设置为 <协定>。
对于服务而言,检索到的名称是在 App.config 文件中指定的终结点名称。
下面的示例筛选器表达式为 PurchaseOrder_EP 终结点的 ServiceRequest 约定调用点的 Receive 操作定义了侦听。 这是通过以下逻辑步骤完成的:
将当前操作名称与“Receive”进行比较,并将结果(True 或 False)推送到堆栈上。
将当前服务约定调用点与“ServiceRequest”进行比较,并将结果(True 或 False)推送到堆栈上。 现在堆栈上有两个布尔值。
使用布尔 和 运算比较上述步骤的结果,并在堆栈上推送结果。 这样,堆栈上就只剩一个布尔值。
将当前终结点与“PurchaseOrder_EP”进行比较,并将结果(True 或 False)推送到堆栈上。 现在堆栈上有两个布尔值。
最后,使用布尔 和 运算比较堆栈上的两个布尔值,并将结果推送到堆栈上。 这会将终结点比较的结果与一个布尔值核对,如果操作名称与约定调用点成功匹配,则此布尔值为 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>