多国技术总结

 

一开始我是先研究了System.Globalization.CultureinfoSystem.threading.thread这两个类,通过对它们的使用,我们就可以设置当前的文化。

具体代码如下:

 

       CultureInfo ci = new CultureInfo("zh-CN");

//新建一个CultureInfo 实例

            Thread.CurrentThread.CurrentCulture 
= ci;

//设置当前线程Culture为所建得实例,culture我所理解得是一些所特定文化得表达方式,如科学技术法,日期等

            Thread.CurrentThread.CurrentUICulture 
= ci;

//设置当前ui文化,什么是ui文化,我所理解得是一些界面得布局。比如:中国人习惯从左像右,从上向下得读写方式,而有的国家则不同。

 

怎样生成本地资源文件?

我们可以新建一个aspx页面,完成后,点击Tools>generate local resource .

结果大家可以看到,在app_LocalResouces文件夹里它为我们自动生成以该页面名称为前缀得resx资源文件。然后你在仔细看看aspx.cs源代码,呵呵,是否有所变化了呢?对,在每个runat"server"控件里,多了一个meta:resourcekey="XXX",这个就是设置当前控件得属性值,所有设置都是放在资源文件中进行。我们把这种设置属性方法称为explicit 方法。

相对的设置方法为implicit 方法。

如:<asp:Literal Text='<% $ Resources: DefaultPageTitle %>' runat="server"></asp:Literal>

大家可以看到implicit 方法的不同。

 

怎样使用App_GlobalResouces文件夹里的资源文件?

三种方式:

1<asp:Label ID="Label9" runat="server" Text="<%$ Resources:Resource,String1 %>"></asp:Label>

Resource为资源名前缀,如Resouce.es.resx前缀为Resouce

 

2 Label5.Text = (string)GetGlobalResourceObject("Resource", "string1");

使用GetGlobalResourceObject()方法,不说大家都看得明白。

 

3Label5.Text = Resources.Resource.String1

直接引用即可,其实现机理不是很清楚。

另外重要得一点需要提一下:

App_GobalResource中每个资源文件可以引用文件,这是2005的一点新特性,感觉非常好。

举个简单例子:

我们有一个xml文件,名称为SupportedCulture.xml,有一个资源文件为Resouce.resx

在资源文件中放入这个xml文件。如何操作?

点击addResouce->add existingFile 即可导入SupportedCulture.xml文件。

如何使用导入的文件?

  

      private DataSet m_ds = new DataSet();

    
//新建一个dataset实例。

        
string cultures = Resources.Cultures.supportedCultures;

      
//引用xml文件。

            System.IO.StringReader rdr 
= new StringReader(cultures);

      
//新建一个stringReader实例,StringReader继承TextReader。

            m_ds.ReadXml(rdr);

      
//读取xml文件,放入dataset中。

            rdr.Close();

      
//关闭rdr。
posted on 2006-04-05 21:05  Sunny  阅读(454)  评论(5编辑  收藏  举报