2009-08-06 22 views
0

我的ASP.NET應用程序已被本地化(by using resources)許多文化。我需要的是找到所有這些文化(在運行時),例如填充DropDownList。如何在ASP.NET應用程序中獲取所有可用的文化名稱

我有代碼在windows應用程序中做到這一點 - 通過尋求衛星程序集構建可用文化的集合。

但是,網絡應用程序呢?找到衛星組件是可取的嗎?或者這可以通過其他方式完成?

有什麼建議嗎?

感謝

回答

0

我有想法:遍歷所有 .resx文件在應用程序的虛擬目錄中,並通過這種方式收集不同的文化名稱。我還沒有嘗試過,但我認爲這應該給我預期的結果。

3

像這樣的東西應該爲你工作...

var ass = Assembly.GetExecutingAssembly(); 

foreach(var c in CultureInfo.GetCultures( 
    CultureTypes.SpecificCultures | 
    CultureTypes.NeutralCultures)) 
{ 
    try 
    { 
    var sat = ass.GetSatelliteAssembly(c); 
    // Add to dropdown 
    } 
    catch(FileNotFoundException) 
    { 
    } 
} 
+0

此代碼在基於Windows的應用程序中正常工作,但不在ASP.NET中。不確定,但我認爲GetSatelliteAssembly()試圖從一個目錄 \ .dll加載衛星程序集。而ASP.NET應用程序使用不同的位置。 – 2009-08-06 11:14:38

+0

有趣的變量名稱 – 2009-08-10 13:33:58

+0

+1爲您的答案。但那不是我正在尋找的。 – 2009-08-23 15:47:25

0

我覺得你的問題是,以填補下拉列表與文化。

爲此,您需要維護一個數據文件/數據表,其中提到了所有支持的文化,然後您可以將其與下拉列表綁定。

請隨時詢問更多?

相關問題