惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
美团技术团队
J
Java Code Geeks
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
宝玉的分享
宝玉的分享
博客园 - Franky
Y
Y Combinator Blog
爱范儿
爱范儿
H
Help Net Security
腾讯CDC
G
Google Developers Blog
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
博客园_首页
C
Check Point Blog
博客园 - 三生石上(FineUI控件)

博客园 - Lupin

百度低调发布搜索开放平台 - Lupin - 博客园 让AtlasToolkit中的CacadingDropDown支持多选 - Lupin - 博客园 ActionPack解读 Temporary Post Used For Style Detection (03e3e7c9-84e1-41db-a5b1-12251cf335f0) 个人求职简历(.Net)--求广州暑期实习 Google Toolbar4 让Google Analytics认识Baidu 微软的工程师也太神奇了! 我也被“玩儿死了” - Lupin - 博客园 NHibernate的Codesmith模板的几个Bug dasBlog的模板引擎(二)----内部实现 dasBlog的模板引擎(一)-----概念解释 const的作用 GooglePK,一个无聊又有趣的小工具 - Lupin - 博客园 购买域名和服务器的过程 再次测试Crossport 最简单的int数组 Python的数据类型 - Lupin - 博客园 关于“undefined reference to”错误
在.Net中使用资源文件
Lupin · 2006-04-15 · via 博客园 - Lupin

    在FxCop中建议代码中出现的某些字符串,比如Exception.Message这类的字符串不要直接写进代码中,而使用RescourceManager从资源文件中读取,这样做可以方便实现本地化。昨天花了好长时间,终于搞清楚应该怎么从资源文件中读值了。以下是记录。

    首先,我们要有一个资源文件,就是.resx。创建的方法可以右击项目,选择添加新项,然后在资源文件夹中选 “程序集资源文件”,Ok。我们就得到一次资源文件了。在Vs中打开它可以很方便的进行编辑,其中比较重要的是name和value字段。它们的作用,不用我说,大家都知道了吧。

    接下来就是重点了,使用RescourceManager从资源文件中读取值。以下是读取的关键的几句:

    1 ResourceManager rm = new ResourceManager( "Lupin.vClass.Runtime.StringTable", Assembly.GetExecutingAssembly());

    2 CultureInfo ci = Thread.CurrentThread.CurrentCulture;

    3 string str = rm.GetString( name, ci );

    重点在第一行中"Lupin.vClass.Runtime.StringTable", 还有 Assembly.GetExecuteingAssembly()。在这里,Lupin.vClass.Runtime是资源文件所在的项目的默认命名空间,最后一个单词StringTable就是文件名了。后面,Assembly.GetExecutingAssembly()的作用是取得当前正在执行的程序集,在这里的意义是资源文件所在的程序集。如果你读取的是其它程序集的资源文件,相应的这个要作改变。

    后面,CultureInfo是本地信息,把它作为参数传递给GetString,程序能自动从相应的文件中读取值。比如用户的默认语言中是zh-cn,那么,程序在读取的时候会读取StringTable.zh-cn.resx中读取,相应的en-us的话,就会读取StringTable.en-us.resx,如果不传CultureInfo进去的话,那就是StringTable.resx了。