解析json / xml配置时如何定义默认的Autofac语言环境

时间:2019-04-05 10:12:05

标签: c# locale autofac ioc-container autofac-configuration

我正在尝试使用xml配置来配置autofac,但是遇到语言环境问题。我尝试注册的组件之一需要 double 参数,该参数在我的本地系统上的格式为xxx,yyy-使用逗号作为十进制分隔符。我必须使用的另一个系统使用作为小数点分隔符。有没有一种方法可以强制autofac忽略语言环境设置,而仅使用点作为小数点分隔符来解析数字?

此配置

<?xml version="1.0" encoding="utf-8" ?>
<autofac>
  <components name="0">
    <type>Geometry.SomeRule, Geometry</type>
    <services name="0" type="Geometry.IValidationRule, Geometry" />
    <parameters>
      <min>3.048</min>
      <max>4.572</max>
    </parameters>
  </components>
</autofac>

抛出

Autofac.Core.DependencyResolutionException: 'An exception was thrown while activating IValidationRule[] -> SomeRule.'
Inner exceptions: Exception: 3,048 is not a valid value for Double.

如果我使用逗号注册,则可以在我的设备上使用,但不能在其他设备上使用。

我可以通过在注册和容器构建过程中设置 CurrentThread.CurrentCulture 来解决此问题,但这似乎不是我的正确解决方案。

1 个答案:

答案 0 :(得分:0)