WebApi 使用的是 Web 服务器文化
WebApi is using Web Server culture
我们的服务器 运行 在丹麦使用 Da-DK 文化。我们没有在 ASP.NET WebApi 解决方案中指定任何文化。
当使用小数参数在 Api 上调用端点时,api 会自动将其转换为欧洲十进制表示法(例如 100,01),最终导致解析错误十进制被传递给另一台服务器上的另一个 API。
我们如何才能强制我们的 Api 使用美国文化而不是 Web 服务器的文化?
您需要为您的应用设置默认本地化。
特别是,您需要 UseRequestLocalization
。您有 DefaultRequestCulture
需要设置为您的文化。
[更新]
我刚刚意识到您不是在要求 asp.net 核心。
对于网络 api,您可以在 Thread.Current
上设置文化
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
我们的服务器 运行 在丹麦使用 Da-DK 文化。我们没有在 ASP.NET WebApi 解决方案中指定任何文化。
当使用小数参数在 Api 上调用端点时,api 会自动将其转换为欧洲十进制表示法(例如 100,01),最终导致解析错误十进制被传递给另一台服务器上的另一个 API。
我们如何才能强制我们的 Api 使用美国文化而不是 Web 服务器的文化?
您需要为您的应用设置默认本地化。
特别是,您需要 UseRequestLocalization
。您有 DefaultRequestCulture
需要设置为您的文化。
[更新] 我刚刚意识到您不是在要求 asp.net 核心。 对于网络 api,您可以在 Thread.Current
上设置文化Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");