工作需要,为VB.NET WinForm程序提供一个中英文界面切换功能,大方向有三个ini、XML、资源文件。

首先ini太过时,坚决不打算用。资源文件和XML相比提供了一个资源文件管理器,编写键值对会很直观,就打算用资源文件方式了。虽然用记事本打开资源文件后发现这仍然是一些XML。

resx格式的资源文件可以说有两种吧:一种是在解决方案资源管理器中点击显示全部文件后,可以看到在每个窗体下方都会有的以FormXXX.resx命名的,专属于某个Form的文件;另一种是为项目插入的全局资源文件,默认以ResourceXXX.resx方式命名。

但是,具体应用中却遇到了问题。用ResourceManager读取资源文件,初始化代码:

Dim rm as new ResourceManager(GetType(FormXXX))

dim temp as string=rm.GetString("字段")

这种方法可以正常运行。为了统一管理,我不打算把中英文对照表分散在各个窗体,想使用ResourceXXX式资源文件。无奈发现同样的代码,把FomrXXX替换成ResourceXXX却报错了,错误意思是:找不到ResourceXXX文件;于是查啊查,找到了一种调用方法

dim temp as string=My.Resources.Resource1.字段名

可是这种方法不太好啊,我有两份资源文件,难道每次切换中英文,相关的每一行代码都得改吗。而如果用类似 Dim rm as new ResourceManager(GetType(FormXXX))的方式,切换就方便多了,只需从根源上换一下GetType(FormXXX)的内容就行了。于是继续查啊查,最后静下来想起上MSDN看了下ResourceManager的重载,找到了这个

ResourceManager 构造函数 (String, Assembly)

public ResourceManager(
string baseName,
Assembly assembly
)
baseName
类型:System.String
资源文件的根名称,没有其扩展名但是包含所有完全限定的命名空间名称。
例如,名为"MyApplication.MyResource.en-US.resources"的资源文件的根名称为"MyApplication.MyResource"。
assembly
类型:System.Reflection.Assembly
资源的主程序集。

baseName是资源文件的根名称,用下面的代码

Private rmEN As New ResourceManager("【试验】资源文件.Resource2", Assembly.GetExecutingAssembly)

还是不行,猜想也许是不能有中文名吧,于是重新建立一个项目

Private rmEN As New ResourceManager("WindowsApplication1.Resource2", Assembly.GetExecutingAssembly)

嘿嘿,成功了!原来搞半天是这重载不能识别中文啊,想想也是,这段字符串是要被编译的,中文当然不行了。C#也一样,只需稍微改一下语法。

而为什么Dim rm as new ResourceManager(GetType(FormXXX))这种代码却可以运行呢?不太确定,应该是因为FormXXX.resx是系统自动创建的,所以不需要手工指定根名称吧。

.NET中资源文件的使用的更多相关文章

  1. Delphi编程中资源文件的应用

    Delphi编程中资源文件的应用/转自 http://chamlly.spaces.live.com/blog/cns!548f73d8734d3acb!236.entry一.引子: 现在的Windo ...

  2. Android中资源文件夹res/raw和assets的使用

    Android中资源文件夹res/raw和assets的使用 2011-12-08 11:05 494人阅读 评论(0) 收藏 举报 androidxml存储stringencodinglayout ...

  3. [转]VB中资源文件.res的使用方法详解

    来源:https://blog.csdn.net/miaozk2006/article/details/82417156 在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将 ...

  4. gradle项目中资源文件的相对路径打包处理技巧

    开发java application时,不管是用ant/maven/gradle中的哪种方式来构建,通常最后都会打包成一个可执行的jar包程序,而程序运行所需的一些资源文件(配置文件),比如jdbc. ...

  5. unity3d中资源文件从MAX或者MAYA中导出的注意事项

    原地址:http://blog.sina.com.cn/s/blog_6ad33d3501011ekx.html 之前在项目中,没有怎么接触过美术的软件(之前的美术团队很犀利,被他们宠坏了).在自己公 ...

  6. Java工程读取resources中资源文件路径问题

    正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径.在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例. 本地读取资 ...

  7. QT中资源文件的使用

    1.在工程中点右键,选添加文件: 在下一页中输入一个资源文件名,如uires,这样工程树下就会出现资源文件夹. 2.右键,选择“Open in Editor”打开它 3.添加或修改前缀名,前缀的作用类 ...

  8. ResouceUtils.getFile()取不到Jar中资源文件源码小结

    Spring提供了一个工具类可以加载classpath下的文件,一般情况下无任何问题,但是当它作为公共的jar包中的工具来加载jar包中的文件时则报出找不到文件的错误. 点开看了一下这个工具类Reso ...

  9. clion中资源文件以及头文件的引用

    首先在使用clion中没有将文件target就会出现下面的错误  在使用的时候可以默认一下  在以后的使用中如果不需要某个文件时  就可以在CMakeLis.txt文件把它删除掉 在代码界面的最上面出 ...

随机推荐

  1. 用jQuery修改右键菜单

    概述 以前在网上找过屏蔽右键菜单的代码,也找过屏蔽F12的代码,今天无意之中看到别人的右键菜单很有意思,我也想来搞一个. 思路 建立一个菜单并且隐藏起来. 用window.oncontextmenu屏 ...

  2. kubernetes集群搭建(5):服务发现dns配置

    抱歉,多次尝试,均未成功,后续将通过二进制安装再次尝试

  3. 【Spark调优】:结合业务场景,优选高性能算子

    聚合操作使用reduceByKey/aggregateByKey替代groupByKey 参见我的这篇博客说明 [Spark调优]:如果实在要shuffle,使用map侧预聚合的算子 内存充足前提下使 ...

  4. 机器学习基石笔记:13 Hazard of Overfitting

    泛化能力差和过拟合: 引起过拟合的原因: 1)过度VC维(模型复杂度高)------确定性噪声: 2)随机噪声: 3)有限的样本数量N. 具体实验来看模型复杂度Qf/确定性噪声.随机噪声sigma2. ...

  5. 在浏览器中输入www.baidu.com后执行的全部过程

    1.客户端浏览器通过DNS解析到www.baidu.com 的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径.客户端浏览器发起一个HTTP会话到220.181.27.48 ...

  6. 来了!阿里开源分布式事务解决方案 Fescar

    摘要: 阿里妹导读:广为人知的阿里分布式事务解决方案:GTS(Global Transaction Service),已正式推出开源版本,取名为“Fescar”,希望帮助业界解决微服务架构下的分布式事 ...

  7. html 空格字符类型

    1,Html中空格     不断行的空白(1个字符宽度)     半个空白(1个字符宽度)     一个空白(2个字符宽度)     窄空白(小于1个字符宽度) 2,Css 的方式空格 CSS中当 w ...

  8. BitMap位图与海量数据的理解与应用

    1. Bit Map算法简介 来自于<编程珠玑>.所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素.由于采用了Bit为单位来存储数据,因此在存储空 ...

  9. 【Java基本功】很多人经常忽视的Java基础知识点

    *.Java文件 问题:一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件 ...

  10. Java 容器源码分析之ConcurrentHashMap

    深入浅出ConcurrentHashMap(1.8) 前言 HashMap是我们平时开发过程中用的比较多的集合,但它是非线程安全的,在涉及到多线程并发的情况,进行put操作有可能会引起死循环,导致CP ...