我正在为此寻找答案,但我找不到它。如您所知,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
答案 0 :(得分:0)
公开的WCF服务只是将消息发送到总线上。一旦消息在总线上,它将被分派到适当的消息处理程序。然后,您可以从处理程序发布。 NSB将为每个继承WcfService&lt; T,K&gt;的消息处理程序公开方法。类。继续使用该类来公开更多方法。