通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>NET专区>>正文 新版上线![旧版]
注:打开慢时请稍等

ASP.NET 应用程序级跟踪记录

http://www.iyit.net  日期:2006-8-28 15:00:51  来源:  点击:
参加讨论
入门
  介绍
  什么是 ASP.NET?
  语言支持

ASP.NET Web 窗体
  Web 窗体介绍
  使用服务器控件
  对控件应用样式
  服务器控件窗体验证
  Web 窗体用户控件
  数据绑定服务器控件
  服务器端数据访问
  数据访问和自定义
  使用业务对象
  创作自定义控件
  Web 窗体控件引用
  Web 窗体语法引用

ASP.NET Web 服务
  Web 服务介绍
  编写简单的 Web 服务
  Web 服务类型封送
  使用 Web 服务中的数据
  使用对象和内部
  WebService 行为
  HTML 模式匹配

ASP.NET Web 应用程序
  应用程序概述
  使用 Global.asax 文件
  管理应用程序状态
  Http 处理程序和工厂

缓存服务
  缓存概述
  页输出缓存
  页片断缓存
  页数据缓存

配置
  配置概述
  配置文件格式
  检索配置

部署
  部署应用程序
  使用进程模型
  处理错误

安全性
  安全性概述
  身份验证与授权
  基于 Windows 的身份验证
  基于窗体的身份验证
  授权用户和角色
  用户帐户模拟
  安全性和 Web 服务

本地化
  国际化概述 Overview
  设置区域性和编码
  本地化 ASP.NET 应用程序
  使用资源文件

跟踪
  跟踪概述
  跟踪记录到页输出
  应用程序级跟踪记录

调试
  SDK 调试器

性能
  性能概述
  性能优化提示
  测量性能

ASP 到 ASP.NET 的移植
  移植概述
  语法和语义
  语言兼容性
  COM 互操作性
  事务

示例应用程序
  个性化入口
  电子商务店面
  类浏览器应用程序
  IBuySpy.com

  获取该页的 URL

使用资源文件


创建资源

资源管理是 .NET 框架类库的一个功能,可用于从源代码中提取可本地化的元素,并将它们与字符串键一起存储为资源。运行时,可使用 ResourceManager 类的一个实例将键解析为原始资源或本地化版本。资源可存储为独立(“松散”)文件,或程序集的一部分。

ASP.NET 页可使用资源文件;另外,已编译的代码隐藏控件可以使用嵌入或链接到它们的程序集中的资源。

可使用 ResourceWriter 类以编程方式创建资源,或使用工具 Resgen.exe 创建资源。Resgen.exe 可使用简单的“键=值”格式作为输入,或使用 .resx 格式的 XML 文件。

; ; Lines beginning with a semicolon can be used for comments. ; [strings] greeting=Welcome ! more=Read more ... ...
ResourceWriter 和 Resgen.exe 创建一个 .resources 文件,该文件可单独使用,也可用作程序集的一部分。若要在程序集中包括 .resources 文件,请使用相关的编译器开关或 Al.exe 工具。仅包含本地化资源、不包含代码的程序集称为附属程序集。

使用页上的资源

下面的示例仅实现一个 .aspx 页,该页针对每个请求进行本地化。支持的语言是英语、德语和日语。确定语言的方法是检查 Global.asax 文件中 HTTP 标头的 Content-Language 字段。该字段的内容可通过 UserLanguages 集合访问:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages(0))
C# VB JScript  

若要更改初始语言设置,可使用不同的本地化客户端,或更改浏览器上的语言设置。例如,对于 Internet Explorer 5.x,从菜单中选择“工具”->“Internet 选项”并单击底部的“语言”按钮。在接下来的对话框中,可以添加其他语言,并定义它们的优先级。为简单起见,示例总是选择第一项。

页第一次加载后,用户可在下拉列表控件 MyUICulture 中选择其他区域性。如果选定的区域性有效,此值将重写从 UserLanguages 获得的设置:

Dim SelectedCulture As String = MyUICulture.SelectedItem.Text
If Not(SelectedCulture.StartsWith("Choose")) Then
  '  If another culture was selected, use that instead.
  Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages(0))
  Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture
End If
C# VB JScript  

以前的代码中需要使用 CreateSpecificCulture 方法,原因是您无法将线程的当前 CultureInfo 设置为非特定区域性。但是从 UserLanguages 设置中得到的字符串可以为非特定区域性。因此,CreateSpecificCulture 方法获取该字符串,并从中生成相应的 CultureInfo。

同样,在 Global.asax 文件中,将用应用程序范围初始化 ResourceManager 实例。这样,资源对每个应用程序仅加载一次。因为资源是只读的,因此不会发生锁争用。

Public Sub Application_Start()
    Application("RM") = New ResourceManager("articles", _
                Server.MapPath("resources") + Path.DirectorySeparatorChar, _
                Nothing)
End Sub
C# VB JScript  

于是就可以在页上轻松地使用资源管理器。问候字符串仅本地化为:

<%=rm.GetString("greeting")%>
 
global.asax

[查看源代码]
 
VB news.aspx

[运行示例] | [查看源代码]


使用附属程序集

查看前一节示例中的目录结构,可以发现示例的资源不是从 DLL 加载的,而是从 .resource 文件加载。尽管这确实是一种解决方案,但还可以将代码编译为附属程序集。根据定义,附属程序集是仅包含资源、不包含可执行代码的程序集。有关附属程序集的更多信息,请参阅如何做...创建资源

.resources 文件由于不是 DLL 而不是影像复制的,因此 Web 站点在使用它们时可能会遇到锁定问题。认识到这一点,使用附属程序集的优点就变得十分明显了。另一种方法是使用应用程序资源的并行主程序集。主程序集包含备用的资源;附属程序集(每个区域设置都有一个)包含本地化资源。主程序集安装在 \bin 目录中,而附属程序集存储在普通的 xx-XX 子目录下(请参阅如何做...创建资源)。作为程序集,它们是影像复制的,而且不会被锁定。若要创建程序集识别的 .asp 应用程序:

  1. 创建资源 DLL 并将其复制到 \bin 目录中。例如:

    resgen qq.txt qq.resources
    al /embed:qq.resources,qq.resources /out:qq.dll

    “y”指示 Blob 是否应对其他程序集可见。由于 ResourceManager 位于 Mscorlib 中而且是一个不同于“qq”的程序集,因此 .resources 文件必须是公共可见的。“y”指示这是否应是公共的。

  2. 在页上包括以下语句。注意,此处的程序集名称位于在 Mscorlib 中定义的 System.Reflection 命名空间中(编译时总要引用它):

            <%
            Dim a As Assembly = Assembly.Load("qq")
            Dim rm As ResourceManager = New ResourceManager("qq", a)
            Response.Write(rm.GetString("key"))
            %>
    
    C# VB JScript  

  3. 将每个附属资源编译到各自的程序集中,并将其放入 /bin 目录中所需的正确目录结构中:

    al /embed:qq.en-US.resources,qq.en-US.resources /out:qq.resources.dll /c:en-US

    将代码替换为正在将 en-US 本地化到的区域性。记住,/c: 标记是区域性说明符。

将 DLL 放置到正确的位置(上例中的 /bin 和 /bin/en-US)后,即可适当地检索资源。注意,一切都通过程序集缓存得到影像复制,因此是可替换的,从而避免了潜在的锁定情况。



对控件使用附属程序集

已编译的代码隐藏控件还可使用附属程序集提供本地化内容。从部署的角度看,这尤其是一件好事,因为附属程序集对代码可以是与版本无关的。因此,只需将附属程序集的模块复制到服务器,即可提供对附加语言的支持,而不需要进行代码更改。

下面的示例包含程序集 LocalizedControls(模块 LocalizedControls.dll)中的 LocalizedButton 控件。编译控件在页 Showcontrols.aspx 上注册并在稍后使用:

LocalizedButton 控件存储 ResourceManager 实例,该实例由 LocalizedButton 的所有实例共享。每当呈现一个控件时,Text 属性的值便由本地化版本替换:

_rm = New ResourceManager("LocalizedStrings", _
                          Assembly.GetExecutingAssembly(), _
                          Nothing, _
                          True )
...
Overrides Protected Sub Render (writer As HtmlTextWriter)
    Text = ResourceFactory.RManager.GetString(Text)
    base.Render(writer)
End Sub
C# VB JScript  

ResourceManager 实例负责将键解析为本地化资源。如果具有正确区域性的附属程序集不可用,并且找不到相关的区域性,则使用主程序集的非特定语言资源("en-us"->"en"->"非特定语言")。只需将新附属程序集的模块文件复制到适当的位置,即可提供另一种语言支持。

 
本地化控件

[查看源代码]
 
VB 使用本地化控件

[运行示例] | [查看源代码]

本节小结

  1. ASP.NET 页可使用资源类将资源中可本地化的内容分离出来,这部分内容在运行时被选定。
  2. 另一个好办法是使用附属程序集而不是中间的 .resources 文件加载资源,因为这样可避免锁定问题。
  3. 已编译控件可包含它们自己的资源,并将根据宿主页的 UICulture 来选择正确的本地化内容。

编辑: [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:ASP.NET 页输出的跟踪记录
下一篇:没有了
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
ASP.NET 应用程序级跟踪记录
ASP.NET 页输出的跟踪记录
ASP.NET 跟踪概述
ASP.NET 使用资源文件
本地化 ASP.NET 应用程序
ASP.NET 应用程序级跟踪记录
ASP.NET 页输出的跟踪记录
ASP.NET 跟踪概述
ASP.NET 使用资源文件
本地化 ASP.NET 应用程序
ASP.NET 设置区域性和编码
ASP.NET 国际化概述
安全性和 WebService
ASP.NET 用户帐户模拟
ASP.NET 授权用户和角色
缓存服务 页数据缓存
缓存服务 页片段缓存
HTTP 处理程序和工厂
使用 Global.asax 文件
HTML 文本模式匹配
WIN XP蓝屏代码大全
QQ密码被盗怎么办!我教你找回密码
WinRAR将推出免费正版序列号!
备份软件GHOST使用教程
轻易破解Winrar,Winzip密码
让WinRAR汗颜的压缩软件UHARC
Win XP操作系统优化精髓
XP中重新安装或修复IE6的三种方法
Ghost批处理命令用法详解
挖掘隐藏在Windows XP中的实用工具(续
在ASP.net中保存/取出图片入/从SQL数据
一个.net 压缩位图至JPEG的代码
ASP.NET2.0数据库入门之常见错误
在ASP.NET中防止注入攻击
用ASP.NET开发Web服务的五则技巧
国内首次发现带有感染文件特征盗号病毒
从键盘磨损看电脑主人
如何控制我的电脑只允许登录我自己的Q
QQ密码被盗怎么办!我教你找回密码
使用身份验证来禁止内部用户上网 
Win Powershell遭遇病毒 最好升级软件
SiteAdvisor 助你远离恶意网站
提升流量 站长应该做的五件事
XP中重新安装或修复IE6的三种方法
XP下Asp.net访问被拒绝
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights ? 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息