0

ユーザーから提供された一連のパラメーターと、WCF の OperationDescription オブジェクトから入力メッセージを抽出して解決した MessageDescription のみを使用してメッセージを作成しようとしています。

シンプルに見えますが、Body.WrapperElementName などの設定や MessageDescription に記述されているさまざまなメッセージ パーツの操作方法に関する情報が見つからないようです。

このかなり複雑な問題を理解するのに役立つ WCF の専門家はいますか?

4

2 に答える 2

0

この機能が実際にそのように直接公開されているとは思いません。

私はこれを試していませんが、リフレクターで少し時間を過ごしました。手を汚して少しリフレクションを使用してもかまわない場合は、Activator.CreateInstance()を使用しての新しいインスタンスを作成することもできます。 System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatterクラス。これは、IClientMessageFormatterインターフェイスを実装します。

コンストラクターのパラメーターは次のとおりです。

  • 操作説明説明
  • DataContractFormatAttribute dataContractFormatAttribute
  • DataContractSerializerOperationBehavior serializerFactory

いずれの場合も、完全なOperationDescriptionオブジェクトが必要ですが、どのような場合でもアクセスできるように見えることに注意してください。

次に、SerializeRequest()を呼び出すだけです。

于 2009-11-07T00:22:06.673 に答える
0

メッセージを表す [MessageContract] タイプを作成できる場合は、TypedMessageConverter クラスを使用できます。

あるいは、DataContractSerializerOperationBehavior を使用してこれを行うことができる場合があります。OperationDescription など、いくつかのスタブを作成する必要があります。

MessageDescription 自体とそこにあるさまざまなパラメーターについて学習するという点では、見たいような [ServiceContract] インターフェイスを作成し、ContractDescription.GetContract を使用して ContractDescription を読み込み、MessageDescriptions オブジェクトを検査することをお勧めします。WCF がデフォルトなどに使用するものを確認できます。

特定のプロパティについて質問がある場合は、私がお手伝いできるかもしれません。

于 2009-11-07T04:51:25.740 に答える