在a c#.net应用程序中,二进制形式是用于通过.RESX文件和资源资源资源浏览器嵌入在应用程序中的资源图像数据的二进制文件?
我已经将.NET应用程序和由于二进制构造固有的安全问题而消除使用二进制形式的任务。 原始作者使用Visual Studio Resource Explorer创建.RESX文件,并将位图映像数据(GUI的图像等)嵌入库(dll),并且DLL链接到最终应用程序中,一个独立的Exe .在.Resx文件中,图像是这样嵌入的:
<data name="MyImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\images\MyImage.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=1234567890ABCEF0</value>
</data>
在自动生成的ResourcesDesigner.cs文件中,图像是这样提取的:
public static System.Drawing.Bitmap Captured {
get {
object obj = ResourceManager.GetObject("MyImage", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
在看编译器输出时,此.RESX文件被Corereresgen转换为.Resources文件,然后将.Resources File嵌入DLL中,该文件必须嵌入EXE中,因为EXE本身都是由EXE嵌入的。 我的理解是在运行时从EXE提取此嵌入式资源数据时,不会使用二进制形式。 谁能确认这是正确的?
为.Resx文件中的映像文件时,使用TypeConverter来创建二进制.Resources文件。 而且,由于可执行文件中嵌入的图像数据已经以二进制格式为二进制格式,因此二进制形式未用于在运行时提取它。 thim摘要,就我的情况而言,二进制形式不用于.NET框架或.NET 8+。
(我正在编写相同的代码以满足客户需求)