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

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
腾讯CDC
aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
Engineering at Meta
Engineering at Meta
C
Check Point Blog
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
Microsoft Security Blog
Microsoft Security Blog
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
WordPress大学
WordPress大学
博客园 - 司徒正美

博客园 - 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了。