标签:
it |
分类: 技术文章 |
在开发比较负责的应用程序的时候,有可能会用到Resources和Settings
通常,Resources常常被用来保存图片、声音等程序将要用到的文件资源,也会用到一些字符串文本资源。使用资源文件保存这些资源方便统一管理。最常见的是每一个CS窗体下面都会附带一个Design文件和一个Resx文件,其中Resx就是窗体的资源文件,但是这个文件我们是用不到的,通常会自己创建资源文件,或者使用创建项目时额外自带的资源文件,在Properties文件夹中。
Settings,用得最多的就是大家所熟悉的App.config里面的AppSettings,但是实际上系统也额外自带生成了一个Settings文件,同样也在Properties文件夹中。
不管是Resources文件还是Settings文件,都可以创建多个。
创建项目时自带的Resources和Settings都在[项目名称].Properties名字空间下,如果是手工创建的,就根据自己创建的路径决定。
初用起来,感觉Resources和Settings用法上差不多,但他们的区别还是很大。
通过比较两者的特点来确定其适用范围
Resources:可以保存图片,文本,文件,音频等各种文件或文字资源。
Settings:可以保存字符串,集合,数字等.NET内置的对象。
Resources:不可在运行时修改和保存。资源项只读。
Setting:可以在运行时修改和保存,设置项可读可写。
Resources:适合做本地化资源,保存在客户端,不由客户端修改的文本或文件。
Settings:适合做由客户端修改和保存的文本或对象,这一点类似WEB开发中常用到的COOKIES
Resources在使用的时候不需要实例化对象,直接使用其中的资源,而Settings是需要实例化的,当然每一个创建好了的Settings类都有一个Defalut属性,这个属性也就是一个默认的全局实例化对象。
既然Settings可以实例化,自然就有构造函数,点开Settings文件,界面上方有一个查看代码,进入以后就可以看到这个类的代码文件,代码文件中有详细的说明。并且可以添加保存和修改事件的委托,当然,也可以在外部使用的时候添加事件委托,不过一般情况下,Settings的委托都是统一的,所以在这里委托上更方便些。
Resources可以使用ResourceManager进行发射调用。代码类似这样
而Settings因为是需要实例化的对象,则使用普通的反射方法就可以了。
Resources和Settings使用的好可以让应用程序更灵活,开发更迅速,代码结构更轻便、灵活,扩展性更高。并且公共对象更安全。