2017-04-10 4 views
0

Consumer(およびバス)の量を制限するために、Consumer()/ Queueで処理をグループ化します。Consumeメソッドで受信したメッセージのダウンキャスト

しかし、コンシューマのメッセージを正しいオブジェクトにキャストするときに問題が発生します。

2種類のリクエストタイプを処理するコンシューマが1つあるとします。 2つのサブリクエストタイプは基本タイプから派生し、メッセージを派生タイプとして送信します。コンシューマメソッドはそれを基本タイプとしてキャッチしますが、要求タイプが派生タイプの1つであるとは判断できません。

派生型ごとにカスタムConsume()メソッドを作成する予定です。そして、メイン(初期)Consume()メソッドから、派生型のいずれかで特定のカスタムConsume()メソッドを呼び出すことにしましたが、これを行う方法を理解することはできません。

シリアル化に関連して、シリアル化がバックグラウンドで行われるため、これを操作できないか、これを行う方法がわかりません。

私の問題を理解していただければ幸いです。これを達成するために私が従うことができる方法はありますか?この場合も主な理由は、キューの量を制限することです。メソッドを消費する。

+0

など、メッセージ契約の作成に関するドキュメントを見直す多型を考えてみましょう「しかし、それは要求タイプが派生型の一つであると結論することはできません」なぜいけないのでしょうか? –

+0

私は 'is'を 'isassignablefrom'として試しましたが、正しいタイプにキャストできません。 Consumeメソッドは基本型をリッスンしていますが、それをダウンキャストすることは不可能です。実際にあなたの質問は、私もあまりにも尋ねているものです – Ozkan

+0

しかし、なぜあなたはそれをキャストできないのですか?例外はありますか?ヌル値ですか?何か? –

答えて

1

サブクラスごとに1つのコンシューマを作成し、サブクラスを直接消費する必要があります。それ以外の場合は、すでにMassTransitで処理されている機能を複製しようとしているだけです。

http://masstransit-project.com/

関連する問題