2012-09-18 55 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」的答案。但是很棒! –