【问题标题】:Get Resource as byte[] C#以字节 [] C# 形式获取资源
【发布时间】:2015-12-12 07:46:40
【问题描述】:

我正在尝试将资源中的图像作为byte[] 插入数据库。该资源位于 Resources/CatSeal 中,是一个名为 index.jpg 的文件。

我已经看过这个question,但我仍然遇到问题。我在指示的行上收到 NullReferenceException。我的命名空间是DatabaseConnectionTests。根据这个documentation,在“访问资源”下它应该遵循这种格式,我相信我正在这样做:

MyNameSpace.MyImage.bmp

这是我的代码:

Stream sourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("DatabaseConnectionTests.index.jpg");
using (var memoryStream = new MemoryStream())
{
    sourceStream.CopyTo(memoryStream); // NullReferenceException here
    seal.SealerImage = memoryStream.ToArray();
}
sealDatabaseOperations.Insert(seal);

如何解决这个问题,以便将我的资源图像加载到 byte[]?提前致谢。

【问题讨论】:

    标签: c# .net bytearray embedded-resource


    【解决方案1】:

    似乎没有找到您的资源。

    试试:“DatabaseConnectionTests.Resources.index.jpg”

    在同一程序集中的类中设置断点并计算它:

    this.GetType().Assembly.GetManifestResourceNames()
    

    这将列出该程序集可用的所有资源名称。

    【讨论】:

    • 好的,谢谢,所以在调试器中运行它会返回“DatabaseConnectionTests.Seals.resources”,但在GetManifestResourceStream 中使用“DatabaseConnectionTests.Seals.resources.index.jpg”仍然会产生 NullReferenceException。有什么想法吗?
    • 您好,我可以检查一下您是否已将 jpg 文件 Build Action 更改为 Embedded Resource?
    猜你喜欢
    • 2011-05-20
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 2011-09-21
    • 2017-03-31
    相关资源
    最近更新 更多