基于语言的内容协商在ASP.NET Web API中的应用

3

如何在新的ASP.NET Web API中基于语言(Accept-Language头)支持内容协商的最佳方法是什么?

新的API有一种很好的方式来支持基于媒体类型的内容协商(请参见这里),但我找不到关于如何基于语言头执行内容协商的指针。

谢谢

3个回答

1

您可以直接调用FormatterSelector来帮助它知道您想要它做什么。正如@AlexanderZeitler所指出的那样,一个HttpMessageHandler可能是在站点级别上执行此操作的最佳选择。您可以在WebApiContrib中看到使用FormatterSelector的简单形式。

希望这将成为未来版本中的新可扩展性点。


0
如果您在web.config文件的全球化元素中将UICulture和Culture设置为auto,ASP.Net会根据Accept-Language标头自动设置CurrentThread.CurrentUICulture和CurrentThread.CurrentCulture。
  <system.web>
    <globalization uiCulture="auto" culture="auto"/>
  </system.web>

0
您可以使用 MessageHandler 检查标头并更改接受标头以匹配您的自定义格式化程序可以协商的类型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接