新しいASP.NET Web APIの言語(Accept-Languageヘッダー)に基づいてコンテンツネゴシエーションをサポートする最適な方法は何ですか?asp.net web.apiの言語に基づくコンテンツネゴシエーション
新しいAPIは、メディアタイプ(here参照)によるコンテンツネゴシエーションをサポートする優れた方法を持っていますが、言語ヘッダーに基づいてコンテンツの否定を行う方法についてのポインタを見つけることができませんでした。
おかげ
新しいASP.NET Web APIの言語(Accept-Languageヘッダー)に基づいてコンテンツネゴシエーションをサポートする最適な方法は何ですか?asp.net web.apiの言語に基づくコンテンツネゴシエーション
新しいAPIは、メディアタイプ(here参照)によるコンテンツネゴシエーションをサポートする優れた方法を持っていますが、言語ヘッダーに基づいてコンテンツの否定を行う方法についてのポインタを見つけることができませんでした。
おかげ
あなたはヘッダを検査し、カスタムフォーマッタを交渉することができますタイプに一致するように受け入れるヘッダーを変更するためにMessageHandlerのを使用することができます。
FormatterSelector
に直接電話して、自分が何をしたいのかを知ることができます。 @AlexanderZeitlerが指摘しているように、HttpMessageHandler
はおそらくサイトレベルでこれを行うのに最適です。 には、FormatterSelector
で作業する簡単な形式があります。
これは、将来のリリースで新しい拡張性のポイントになることを願っています。
web.configのグローバリゼーション要素でset UICultureとCultureをautoに設定すると、ASP.NetはAccept-Languageヘッダーに基づいてCurrentThread.CurrentUICultureとCurrentThread.CurrentCultureを自動的に設定します。
<system.web>
<globalization uiCulture="auto" culture="auto"/>
</system.web>