.NET中资源文件的使用
工作需要,为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中资源文件的使用的更多相关文章
- Delphi编程中资源文件的应用
Delphi编程中资源文件的应用/转自 http://chamlly.spaces.live.com/blog/cns!548f73d8734d3acb!236.entry一.引子: 现在的Windo ...
- Android中资源文件夹res/raw和assets的使用
Android中资源文件夹res/raw和assets的使用 2011-12-08 11:05 494人阅读 评论(0) 收藏 举报 androidxml存储stringencodinglayout ...
- [转]VB中资源文件.res的使用方法详解
来源:https://blog.csdn.net/miaozk2006/article/details/82417156 在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将 ...
- gradle项目中资源文件的相对路径打包处理技巧
开发java application时,不管是用ant/maven/gradle中的哪种方式来构建,通常最后都会打包成一个可执行的jar包程序,而程序运行所需的一些资源文件(配置文件),比如jdbc. ...
- unity3d中资源文件从MAX或者MAYA中导出的注意事项
原地址:http://blog.sina.com.cn/s/blog_6ad33d3501011ekx.html 之前在项目中,没有怎么接触过美术的软件(之前的美术团队很犀利,被他们宠坏了).在自己公 ...
- Java工程读取resources中资源文件路径问题
正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径.在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例. 本地读取资 ...
- QT中资源文件的使用
1.在工程中点右键,选添加文件: 在下一页中输入一个资源文件名,如uires,这样工程树下就会出现资源文件夹. 2.右键,选择“Open in Editor”打开它 3.添加或修改前缀名,前缀的作用类 ...
- ResouceUtils.getFile()取不到Jar中资源文件源码小结
Spring提供了一个工具类可以加载classpath下的文件,一般情况下无任何问题,但是当它作为公共的jar包中的工具来加载jar包中的文件时则报出找不到文件的错误. 点开看了一下这个工具类Reso ...
- clion中资源文件以及头文件的引用
首先在使用clion中没有将文件target就会出现下面的错误 在使用的时候可以默认一下 在以后的使用中如果不需要某个文件时 就可以在CMakeLis.txt文件把它删除掉 在代码界面的最上面出 ...
随机推荐
- ubuntu root默认密码(初始密码)
ubuntu安装好后,root初始密码(默认密码)不知道,需要设置. 1.先用安装时候的用户登录进入系统 2.输入:sudo passwd 按回车 3.输入新密码,重复输入密码,最后提示passwd ...
- 内存管理-slab[原理]
前言 主要讲解原理,基于2.6.32版本内核源码.本文整体思路:先由简单内存模型逐渐演进到当下通用服务器面对的内存模型,讨论每一个内存模型下slab设计需要解决的问题. 历史简介 linux内核运行需 ...
- [视频]K8飞刀 WordPress XSS添加管理员 & GetShell 教程
[视频]K8飞刀 WordPress XSS添加管理员 & GetShell 教程 https://pan.baidu.com/s/1hq4LsmK
- 移动 Ubuntu16.04 桌面左侧的启动器到屏幕底部
与其他 Linux 发行版不同,Ubuntu 多年来一直使用 Unity 做桌面环境,该环境的最突出特点就是桌面左侧有一个启动器栏(Launcher).从 16.04 版本开始,Ubuntu 提供了一 ...
- .net core通过发布nuget实现引用项目
1 获取 api key 登录 https://www.nuget.org/account 进行api key获取操作 2 安装 nuget package explorer 3 进入要发布的项目目 ...
- 第六章:四大组件之Activity
tivityActivity作为Android四大组件之一,也是其中最重要的一个组件.作为一个与用户交互的组件,我们可以把Activity比较成为windows系统上的一个文件夹窗口,是一个与用户交互 ...
- Spring Boot Actuator监控应用
微服务的特点决定了功能模块的部署是分布式的,大部分功能模块都是运行在不同的机器上,彼此通过服务调用进行交互,前后台的业务流会经过很多个微服务的处理和传递,出现了异常如何快速定位是哪个环节出现了问题? ...
- Python机器学习笔记 Logistic Regression
Logistic回归公式推导和代码实现 1,引言 logistic回归是机器学习中最常用最经典的分类方法之一,有人称之为逻辑回归或者逻辑斯蒂回归.虽然他称为回归模型,但是却处理的是分类问题,这主要是因 ...
- 异步加载CSS
说到加载 CSS 这种事儿不是很简单吗?像这样咯: <link rel="stylesheet" href="cssfile.css"> 这不就完事 ...
- mybatis教程2(配置文件)
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息.文档的顶层结构如下: configuration 配置 propertie ...