2012-09-18 19 views
1

我将字符串转换为使用作为IFormatProvider指定给我的文化的值。如何获得IFormatProvider的文化

我想弄清楚他们给了我哪种文化。

我知道IFormatProvider不一定要对应于System.Globalization.Culture,但它确实如此。

那么我怎么能得到它的名字呢?

回答

5

CultureInfo类实现IFormatProvider所以你可以尝试铸造:

IFormatProvider provider = ... 
CultureInfo ci = provider as CultureInfo; 
if (ci != null) 
{ 
    string name = ci.DisplayName; 
    ... 
} 
+1

我花了大约20分钟的咒骂和脏话来弄清楚为什么'ci.Name'是返回一个空字符串。这是因为在使用'ci.Name' ***的文化中***是一个空字符串。更改了使用“DisplayName”的答案。但是很棒! –