2012-03-29 18 views
0

。これは、新しい枠組みの中で明らかに不可能です。ASP.NET MVC 4 WEBAPI条件MessageHandlers

コードが基づいている:ASP.NET MVC 4 WebApi Support For Multiple HttpConfigurations

は、代わりに私は、私は特定の属性は次のように存在していた場合はハンドラを追加するWebApiConfigurationRequestHandlersを編集したプロジェクトを持っていました: http://haacked.com/archive/2011/10/19/implementing-an-authorization-attribute-for-wcf-web-api.aspxHttpConfigurationMessageHandlersは設定できないため、これはもう不可能です。要約すると、私の質問は、特定のメッセージハンドラを特定のApiControllerサービスにのみ適用するように指定する方法です。 ASP.NET MVC 4 WebApiフレームワークは、Web Api Betaの能力と構成を単純化しているようです。

+0

自己ホストする場合は、複数のサービスを作成できます。現時点ではWebホストには存在しません。 –

答えて

0

これを新しいWeb APIで実現するための推奨方法は、アクションフィルタ属性です。 MVCと同じように動作しますが、新しい基本クラスを使用してそれらを実装します。開始する最も簡単な方法はActionFilterAttributeから派生することです。

+0

うん。私はアクションフィルタに精通していますが、私のケースの1つでは、ContinueWithと呼ばれるメッセージハンドラを持っていました。そのため、メッセージハンドラが呼び出されたフロー、実際のサービス、メッセージハンドラでした。クールなことは、エントリメッセージハンドラ関数から終了メッセージハンドラ関数に変数を渡すことができたことです。 Executing関数からExecuted関数に変数を渡すことはできないため、OnActionExecutingとOnActionExecutedではこれを行うことはできません。 –

+0

ActionArgumentsのように見えますが、その解決策になります。 –

+2

@nextgenneo ActionArgumentsは、アクションメソッドに渡されるパラメータです。それを使わないでください。代わりに、 'HttpRequestMessage.Properties'を使用してください。 – marcind