在 WPF 应用程序(.NET Framework 4.5.2)中,我使用 IValueConverter 从 2 个字母的区域代码中获取 RegionInfo:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
if (value != null) { //
// we use local list of regions (due to perfomance issue : new RegionInfo() )
//
var key = value.ToString();
if (regionsName.ContainsKey(key)) return regionsName[key];
regionsName.Add(key, new RegionInfo(value.ToString()).DisplayName);
return regionsName[key];
}
return null;
}
这几乎在任何地方都很有效。现在一位客户遇到了异常:
TypeString:System.ArgumentException,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089 消息:不支持文化名称“MU”。参数名称:名称
当我使用 value="MU" 在本地调用 Convert-Method 时,我得到 'Mauritius' 作为相应的 DisplayName(来自 RegionInfo)。所以“MU”似乎是一个有效的区域代码。
那么为什么这个代码在客户端机器上是未知的呢?我该如何解决这个问题?