2009-08-06 55 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

我觉得你的问题是,以填补下拉列表与文化。

为此,您需要维护一个数据文件/数据表,其中提到了所有支持的文化,然后您可以将其与下拉列表绑定。

请随时询问更多?

相关问题