c# 资源文件

资源文件类型

参考:http://blog.csdn.net/flyingdream123/article/details/3754470
System.Resources名称空间支持三种资源文件:
(1)txt文件,只能有字符串资源。因为不能被嵌入到Assembly中,所以很容易暴露,被窗户修改。
不可以直接调用,得先将其转换成resources文件才能使用
(2)resx文件,由xml组成,可以加入任何资源,包括二进制,同样不能被嵌入到Assembly中。
可以用ResXResourceReader来读取,但是不直观。如果在VS.NET中添加resx文件,那么它们会自动被设为Embeded Resource,转换成resources文件后被 嵌入到Assembly中。
(3)resources文件,PE格式,可以加入任何资源,可以被嵌入到Assembly中,在System.Resources名称空间中有专用读写的类。
如果resources文件被嵌入或编译成Satellite Assembly,那么可以用ResourceManager的各种constructor来获得Assembly中的资源。
如果没有被 嵌入或编译成Satellite Assembly,那么可以用Resourcemanager.CreateFileBasedResourceManager来获得资源集。
如果嵌入一个资源不是通过资源文件而直接将一资源嵌入到Assembly中,只需要调用Assembly.GetManifestResourceStream这个函数,这个函数将一嵌入到Assembly中的资源以stream的方式返回,而我们可以将这个stream转成.NET中可用的对象。比如,如果嵌入资源是一图片,那么我们可以利用New Bitmap(stream)这个Bitmap的constructor获得这个图片资源的Bitmap对象。

ResourceManager(String,Assembly)

string就是资源的完整名,一个完整名由它的名字空间和文件名前部分组成,例如,如要默认名字空间是DefaultNamspace,资源文件的名字是String.en-US.resources,那么它的完整名就是DefautlNamespace.Strings。如果资源文件放在subFolder子文件夹下,它们文件名是DefaultNamespace.subFolder.Strings。

你可能感兴趣的:(c# 资源文件)