2011-06-22 12 views
0

私はこれに対する答えを見ていましたが、私はそれを見つけることができませんでした。ご存じのように、NServiceBusライブラリには、WCF Integrationというサンプルが付属しています。これは、サーバーがWCFサービスとして公開するインターフェイスを備えています。このインタフェースは内部に1つのメソッドしかありません。私の考えは、そのインターフェースの中に複数のメソッドを持つことです。これは可能ですか? 私は自分のプロジェクトを持っています。複数のメソッドとのインターフェースがあります。このWCFサービスは、サンプルから「プロセス」に似たメソッドを持ち、メッセージを公開します。NServiceBusを使用してサーバーに2つのメソッドを公開できますか?

コード:

[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を持ち、他のものは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); 
} 

私のコードは次のようなものになります。あなたの反応で私は最初の投稿のコードが間違っていたことに気付きました。

これは可能ですか、これを実装するには別の方法を検討する必要がありますか?

おかげで、マティアス

+0

未登録のアカウントを登録済みのアカウントにマージしました。この質問を編集し、回答の下にコメントを残して、(結局は)あなたを最も助けてくれた回答を受け入れることができます。 –

答えて

0

さらされるWCFサービスは、バス上にメッセージを取得するだけです。メッセージがバスに到着すると、メッセージは適切なメッセージハンドラにディスパッチされます。ハンドラからパブリッシュできます。 NSBは、WcfService < T、K >クラスを継承する各メッセージハンドラのメソッドを公開します。より多くのメソッドを公開するには、そのクラスを使い続けてください。

関連する問題