gpt4 book ai didi

c# - 访问链接 "Resource File"中的项目

转载 作者:行者123 更新时间:2023-11-30 18:23:13 25 4
gpt4 key购买 nike

我正在使用 C# 开发一个 Forms 应用程序,该应用程序在解决方案下跨多个项目使用大量图像;我创建了一个新项目,该项目编译为一个 DLL 到 house all of the images稍微清理一下&linked the resulting "*.res" file进入每个项目。

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

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

最佳答案

您可以使用 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);

现在我们只需要使用 System.Runtime.Serialization.Formatters.Binary 中的 BinaryFormatter 反序列化资源:

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

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

关于c# - 访问链接 "Resource File"中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32650033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com