How to: Retrieve Resource Values Programmatically
时间:2010-09-16 来源:yuzhangqi
You can use declarative syntax to set the values of ASP.NET server control properties to a resource value. Alternatively, you can retrieve resource values programmatically. You might do this if the resource value is not known at design time or if you want to set the resource value based on a run-time condition.
You can get resource values from both local and global resource files that use methods that return an object that you can cast to the appropriate type. Because ASP.NET compiles global resources with strong typing, alternatively you can get global resources using strongly typed members.
To retrieve resource values programmaticallyCall the GetLocalResourceObject or GetGlobalResourceObject method to read specific resources from a global or local resource file, respectively. These overloaded methods are available in the HttpContext and TemplateControl classes.
The GetGlobalResourceObject method takes the name of a resource class and the resource ID. The class name is based on the .resx file name. For example, the file WebResources.resx, and all associated localized files, are referenced by the class name WebResources.
The GetLocalResourceObject method takes a resource name representing a ResourceKey property.
The following code example shows how to get the value of a resource from a local and global resource file. The methods return an object; therefore, you must cast the resource to the appropriate type.
<%@ 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>
To retrieve global resources using strong typing
Get the resource using the following syntax:Resources.Class.Resource
Resources are compiled into the namespace Resources, and each default resource becomes a member of the Resources class. For example, if you have created the default resource file WebResources.resx and the file contains a resource named WelcomeText, you can reference the resource in code as shown in the following code example:
String welcome = Resources.WebResources.WelcomeText;