访问链接的“资源文件”中的项

本文关键字:资源文件 资源 链接 访问 源文件 | 更新日期: 2023-09-27 18:13:13

我正在c#中开发一个表单应用程序,该应用程序在解决方案下跨多个项目使用大量图像;我创建了一个新项目,它被编译成一个DLL来容纳所有的图像,以清理一些东西& &;链接了结果"*"。

我现在如何访问存储在这个新项目中的图像?我似乎无法进入ResourceTemplate assembly/namespace &我没有幸运地找到特定于使用Resource File选项在项目Properties> Application窗口中链接资源的信息。

我目前正在测试"System.Resources"。ResourceManager ",使用GetObject()方法,看看我是否可以使用System.Uri直接从DLL加载图像。

访问链接的“资源文件”中的项

可以用System.Resouces代替ResouceReader

首先加载包含资源的assembly,并从中获取资源流:

Assembly resourcesAssembly = Assembly.Load("C:'fullPath.asm");
string[] Names = resourcesAssembly.GetManifestResourceNames();
Stream resourceStream = a.GetManifestResourceStream(names[0]);

现在使用ResourceReader,我们将获得存储在资源assembly中的序列化资源:

ResourceReader reader = new ResourceReader(resourceStream);

取我们想要的资源使用它的名字:

byte[] serializedResource;
string resourceType;
reader.GetResourceData("ResourceNameWithoutExtension", out resourceType, out serializedResource);

现在我们所需要的是使用BinaryFormatterSystem.Runtime.Serialization.Formatters.Binary反序列化资源:

BinaryFormatter formatter = new BinaryFormatter();
using (MemoryStream serializedResourceStream = new MemoryStream(serializedResource))
{
    object result = b.Deserialize(serializedResourceStream);
}

希望这对我有帮助,它对我有用,请随时提问:)