我可以使用NServiceBus在我的服务器中公开两种方法吗?

时间:2011-06-22 13:06:21

标签: wcf nservicebus

我正在为此寻找答案,但我找不到它。如您所知,NServiceBus库附带了一个调用WCF Integration的示例。它有一个服务器作为WCF服务公开的接口,对吧?此接口内部只有一个方法。我的想法是在该接口中有多个方法,这可能吗? 我有自己的项目,其中我的接口有多个方法,我的想法是这个WCF服务有一个方法类似于样本中的“Process”,它发布消息。

代码:

[ServiceContract]
public interface ICancelOrderService
{
    [OperationContract(Action = "http://tempuri.org/IWcfServiceOf_CancelOrder_ErrorCodes/Process", ReplyAction = "http://tempuri.org/IWcfServiceOf_CancelOrder_ErrorCodes/ProcessResponse")]
    ErrorCodes Process(CancelOrder request);

    [OperationContract]
    ErrorCodes HelloWorld(CancelOrder request);
}

public class CancelOrderService : WcfService<CancelOrder, ErrorCodes>{}

我试图从ICancelOrderService继承,但没有用。

那么,有什么建议吗?谢谢大家......

问候,马蒂亚斯。


感谢您的回复。也许我的解释不够明确。我的服务器继承自WcfService,但我的想法是拥有多个OperationContract,一个类似于Process,另一个是公共Wcf OperationContract,它们不会与NSB交互。

[ServiceContract]
public interface ICancelOrderService
{
    [OperationContract(Action = "http://tempuri.org/IWcfServiceOf_CancelOrder_ErrorCodes/Process", ReplyAction = "http://tempuri.org/IWcfServiceOf_CancelOrder_ErrorCodes/ProcessResponse")]
    ErrorCodes Process(CancelOrder request);

    [OperationContract]
    void HelloWorld(int var);
}

我的代码就是这样的。根据您的回复,我意识到第一篇文章的代码是错误的。

那么,这是可能的,还是我必须以其他方式来实现它?

谢谢Matias

1 个答案:

答案 0 :(得分:0)

公开的WCF服务只是将消息发送到总线上。一旦消息在总线上,它将被分派到适当的消息处理程序。然后,您可以从处理程序发布。 NSB将为每个继承WcfService&lt; T,K&gt;的消息处理程序公开方法。类。继续使用该类来公开更多方法。