以编程方式检索资源值

如何:以编程方式检索资源值 

 

可以使用声明性语法将 ASP.NET 服务器控件属性值设置为资源值,也可以以编程方式检索资源值。如果在设计时资源值未知或者需要根据运行时条件设置资源值,可能会这样做。

可以从本地资源文件和全局资源文件中获取资源值,这些文件使用的方法返回一个可强制转换为适当类型的对象。由于 ASP.NET 使用强类型编译全局资源,因此也可以使用强类型成员获取全局资源。

以编程方式检索资源值

  • 调用 GetLocalResourceObjectGetGlobalResourceObject 方法以分别从全局资源文件或本地资源文件中读取特定的资源。在 HttpContextTemplateControl 类中提供了这些重载方法。

    GetGlobalResourceObject 方法采用资源类名和资源 ID。该类名基于的是 .resx 文件名。例如,文件 WebResources.resx 和所有相关联的本地化文件都由类名 WebResources 引用。

    GetLocalResourceObject 方法采用表示 ResourceKey 属性的资源名。

    下面的代码示例演示如何从本地资源文件和全局资源文件获取资源值。这些方法返回一个对象;因此,必须将该资源强制转换为适当的类型。

    存储在 App_LocalResources 特殊文件夹中的默认本地资源文件根据 ASP.NET 页命名。例如,如果在 Default.aspx 页中使用了下面的代码,则必须将该资源文件命名为 Default.aspx.resx。在此示例中,向此文件添加了一个名为 Button1.Text 的字符串资源,并且该资源带有 "Found Resources" 值。

    此外,在此示例中,存储在 App_GlobalResources 特殊文件夹中的默认全局资源文件命名为 WebResourcesGlobal.resx。向此文件添加了一个名为 LogoUrl 的字符串资源,而且该资源带有 http://go.microsoft.com/fwlink/?LinkId=49295 值或其他图像的 URL。

    Visual Basic
           
           
    <% @ Page Language="VB"  %>

    < script  runat ="server" >
        Protected Sub Button1_Click( _
            ByVal sender As Object, ByVal e As System.EventArgs)
            Button1.Text 
    = _
                GetLocalResourceObject(
    "Button1.Text").ToString()
            Image1.ImageUrl 
    = _
                CType(GetGlobalResourceObject(
    "WebResourcesGlobal", _
               
    "LogoUrl"), String)
            Image1.Visible 
    = True
        End Sub
    </ script >

    < html   >
    < head  runat ="server" >
        
    < title > Untitled Page </ title >
    </ head >
    < body >
        
    < form  id ="form1"  runat ="server" >
        
    < div >
            
    < asp:Button  ID ="Button1"  runat ="server"  
                OnClick
    ="Button1_Click"  
                Text
    ="Get Resources"   />
            
    < asp:Image  ID ="Image1"  runat ="server"  
                Visible
    ="false"   />
        
    </ div >
        
    </ form >
    </ body >
    </ html >
     
     
<% @ Page Language="C#"  %>

< script  runat ="server" >
    protected 
void Button1_Click(object sender, EventArgs e)
    
{
        Button1.Text 
= 
            GetLocalResourceObject(
"Button1.Text").ToString();
        Image1.ImageUrl 
= 
            (String)GetGlobalResourceObject(
            
"WebResourcesGlobal""LogoUrl");
        Image1.Visible 
= true;
    }

</ script >

< html   >
< head  id ="Head1"  runat ="server" >
    
< title > Untitled Page </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
        
< asp:Button  ID ="Button1"  runat ="server"  
            OnClick
="Button1_Click"  
            Text
="Get Resources"   />
        
< asp:Image  ID ="Image1"  runat ="server"  
            Visible
="false"   />
    
</ div >
    
</ form >
</ body >
</ html >

使用强类型检索全局资源

  • 按照下面的语法获取资源:

                  Resources.Class.Resource

    资源将编译到命名空间 Resources 中,并且每个默认资源都将成为 Resources 类的成员。例如,如果创建了默认资源文件 WebResources.resx,并且该文件包含一个名为 WelcomeText 的资源,则可以在代码中引用该资源,如下面的代码示例所示:

    Visual Basic
           
           
    Dim  welcome  As   String
    welcome 
    =  Resources.WebResources.WelcomeText
String welcome;
welcome = Resources.WebResources.WelcomeText;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值