各リクエストの開始時にいくつかのヘッダー値を抽出し、それらをMEFによってアプリケーションコードに挿入できるClientContextオブジェクトに配置する必要があります。WCF Web APIのプレビュー5を使用していますが、これを行う方法がわかりません。
「標準」のWCFでは、IExtension <OperationContext>を実装するクラスを作成し、次のプロパティを使用してすべてを相互に接続します。
[Export(typeof(IClientContext)]
[PartCreationPolicy(CreationPolicy.NonShared)]
public static ClientContextExtension Current
{
get
{
var operationContext = OperationContext.Current;
if (operationContext == null)
return null;
var extension = operationContext.Extensions.Find<ClientContextExtension>();
if (extension == null)
{
extension = new ClientContextExtension();
operationContext.Extensions.Add(extension);
}
return extension;
}
}
カスタムDelegatingHandlerはClientContextExtension.Currentを呼び出し、ヘッダー値からプロパティを設定します。残念ながら、WCF Web APIでは、OperationContext.Currentは常にnullです。
これをWebAPIで機能させる方法がわかりません。どんな助けでも大歓迎です!!!