将当前拦截终结点的名称推送到堆栈上。
Syntax
<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>