0

サービス内のすべてのデータ コントラクト オブジェクトは BaseMessage から継承しています...

[DataContract(Name = "BaseMessage", Namespace = "http://www..."]
public class BaseMessage
{
    [DataMember]
    public Guid MessageId { get; set; }
}

私は、メッセージ インスペクターを使用して、ネットワークを通過する実際の SOAP ペイロードを調べることに慣れています。ただし、私がやりたいことは、何らかの形でメッセージ パイプラインにフックして、次のことを行うことです。

  1. 着信メッセージを見て、理想的には文字列メッセージ オブジェクト全体で文字列一致を検索せずに MessageId フィールドを読み取ります (これを行うための高速な方法がない限り)。

  2. MessageId を含むメッセージ内にヘッダーを作成する目的で、メッセージから MessageId を抽出します。繰り返しますが、文字列の一致についてメッセージ全体を検索したくありません。

私は IClientMessageInspector と IDispatchMessageInspector を使用してメッセージを確認することに慣れていますが、パイプラインのこの時点では、実際のオブジェクトにアクセスしてそのフィールドにアクセスすることはできないと思います。

ありがとう

4

1 に答える 1

0

メッセージの本文とヘッダーに含まれるメンバーを特定するには、メッセージ コントラクトが必要です。

于 2012-04-04T13:49:56.747 に答える