【问题标题】:Can you get the name of the service method from within the WCF channel stack?您可以从 WCF 通道堆栈中获取服务方法的名称吗?
【发布时间】:2009-02-11 20:16:56
【问题描述】:

在编写自定义通道时,如何获取将要调用的服务方法的名称。

例如,如果操作合约如下所示,如何知道是Method1 还是Method2 被调用?

[OperationContract]
void Method1( int data );

[OperationContract]
void Method2( int data );

频道本身并不对 Message 执行任何主要功能,它只是添加了一些额外的数据。我正在寻找的是根据被调用的方法(或者更具体地说,如果它用某些东西装饰)来自定义添加到通道中的额外数据。

【问题讨论】:

  • 可以详细说明您想要信息的位置,例如调用者、被调用者以及在什么级别?

标签: c# .net wcf web-services


【解决方案1】:

如果您要创建传输通道,那么这完全取决于您。您有责任接收传入的字节并将其转换为一条消息,然后将其推送到通道堆栈中。

如果您正在创建一个协议通道,您可以访问 OperationContext(它应该在那个时候设置)并检查 IncomingMessageHeaders 属性并获取操作标头。这是用来映射到 OperationContract 的。

你究竟想在这里做什么,你想在什么时候做?您想创建什么样的频道?您的问题没有足够的信息来真正给出答案。

【讨论】:

    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 2013-05-11
    • 2022-10-13
    • 1970-01-01
    • 2014-05-22
    • 2018-09-25
    相关资源
    最近更新 更多