概述
我们写的程序,进行编译后,会生成相应的程序集,那么这个程序集中主要包括那些内容呢?主要包括了:中间代码,数据,元数据和资源文件。
对于前三者的解释,之前的博客中说过,此次滤过,所以,本片博客讲的就是资源文件
什么是资源文件?
资源文件就是图片,xml文件,文本文件,excel文件等,我们可以从另一个角度去理解,那就是什么是中间代码,数据和元数据?我们用C#写一段代码,这段代码中,有关具体的数据,经过编译后,就到数据区,而其它的就被编译为中间代码,当然,元数据是.net framework自动给我们编译好了的,具体关于元数据可以看这篇博客。
所以呢,我们可以这么理解,凡是没有经过编译处理过的文件(没有进行设置其属性等操作),我们都可以称为资源文件,当然,我们最终的目的是通过设置其属性,让其编译到程序集中
资源文件的用途和作用?
用途
1、第三方开发的使用
自定控件的开发,对于web中的自定义控件的开发过程中,会用到很多的js、css和图片文件,这些都是资源文件,并且这些还是开发web自定义控件必须用的文件;
Spring.net等程序集集合的使用,这类的资源文件一般是给使用时进行配置的“接口”,如我们配置的xml文件
2、自己程序开发的使用
Web开发中使用的js文件,css文件,图片,或者excel,word文件,这些都是资源文件
作用
对于上面两种资源文件的使用,其都是一个具体功能实现的过程中不可缺少的一部分,只不过,由于我们的使用形式不同,给我造成其作用不相同,如:web开发中的图片文件,我们通过忽略其作用,但是,对于Nhibernate给我们提供的资源文件,我们确认为,这个使程序更加的灵活,更加的强大,其实都是一个事,当然,从编程的角度上说,后者却是很强大,并且,我们在以后的设计过程中,也应该朝着这个方向做,当然,如果你嫌配置的太多,你之后的程序设计也可以使用微软的MVC思想:约定大于配置。
如何使我们的程序使用资源文件
对于web开发,UI层使用的资源文件,我们不用管,因为,我们程序部署的时候,就是整个的将UI层给复制走了,所以,这些资源文件对于已经部署上的程序来说,还可以访问,但是,对于像BLL层这类给别的程序提供服务的程序集,如果其内部使用了资源文件,那么,必须需要对资源文件进行一些处理,以确保,这个资源文件可以弄到本程序集中,这样才能被使用者所接受(用户只关系这个dll就行,不需要关心其内部使用的资源文件)
如何将资源文件弄到程序集中内?我们可以设置资源文件的属性,将其设置为嵌入到程序集中,也可以添加一个.net给我们提供的“资源文件”,将我们需要的资源文件直接拖放到里面进行管理就行。
注意:我们BLL程序集内的代码不要通过物理路径访问这些资源文件,应该使用.net给我们提供的一些类进行操作。
总结
在做桌面程序的时候,如果我们的UI层使用到了资源文件,那么,我们打包发布时,应该将其添加到安装包中,此时,你应该知道这其中的原理了吧。
资源文件很重要,尤其从程序灵活性上理解,其作用非常的强大。