标签:对比 异常 配置 new mic 地方 tst col 二进制
c# 工程里面,经常会添加资源文件。
作用:
入门资源,txt格式文本
新建一个txt,写两个资源,name 和 age
使用工具 resgen.exe 生成资源文件。
resgen my-resource.txt
查看产物:
查看二进制文件到底长啥样,可以看到里面写了我们存的两个资源。至于其他文本估计是微软自己搞得格式
现在我们编写最简单的c# code去使用我们的资源:
直接写成最朴素的txt文件,是为了等会用csc好具体看资源到底怎么工作的。
代码如下:
namespace MyTestResourceNamespace { class Program { static void Main(string[] args) { var rm = new System.Resources.ResourceManager("my-resource", System.Reflection.Assembly.GetExecutingAssembly()); var name = rm.GetString("name"); System.Console.WriteLine(name); } } }
使用csc工具,直接做成exe
csc test-resource.cs
产物:
直接调用exe自然会抛出异常,因为我们还没有嵌入我们的资源文件。
使用reflector查看:
这里有两种方法,一个是生成exe的时候就嵌入。还有一种是生成好的exe用AL.exe这个工具嵌入资源。
先使用方法1:
csc test-resource.cs -resource:my-resource.resources
这次再查看reflector瞅瞅,这次资源成功嵌入到exe啦
对比两次的exe二进制数据的不同,很容易发现,资源文件被嵌入到exe的某一段了。至于位置微软自己知道,不需要我们操心~
这次再次调用这个exe:
test-resource.exe
命令行输出:
zhangsan
未完待续~
标签:对比 异常 配置 new mic 地方 tst col 二进制
原文地址:https://www.cnblogs.com/chenyingzuo/p/11968005.html