0
従来のルーティングを使用している場合、DelegatingHandlerを使用してSendAsyncメソッドをオーバーライドしてレスポンスラッパーを作成できます。属性ルーティングのレスポンスラッパーの作成方法は?
DelegatingHandler[] handler = new DelegatingHandler[] {
new ResponseWrapper()
};
var routeHandler = HttpClientFactory.CreatePipeline(new HttpControllerDispatcher(config), handler);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}",
defaults: null,
constraints: null,
handler: routeHandler
);
ただし、この方法は属性ルーティングに依存するメソッドでは機能しません。私の場合は、コンベンションベースのルーティングはすべてのシナリオで機能せず、routeHandlerは属性ベースのルートには適用されません。
すべての属性ベースのルート応答に応答ラッパーを適用するにはどうすればよいですか?
すべてのシナリオでは、コンベンショナルベースのルーティングは機能しませんか?属性ルーティングがコンベンションベースのルーティング機能のサブセットであることは、どのように可能ですか? – NightOwl888
あなたの場合、routeHandlerはコントローラアクションラッパーです。なぜ、同じではあるが、はるかに簡単で、どのルートメカニズムでも動作するActionFilterを使用しないでください。 –
がUserController NightOwl888 @おそらく、私が操作 API /ユーザー API /ユーザー/ {userIdを} API /ユーザー/ {userIdを} /入学 API /ユーザー/ {userIdを} /入学/ {enrollmentId} をGET無知なだけです...上記の規則をベースにしたルーティングを使用して達成する方法はありますか?私は複数のコンベンションを作成しても構いませんが、各コントローラのためのコンベンションベースのルートが必要な場合は、属性ルーティングが望ましいと思われます。 – Zoop