Извлечение внедрённых ресурсов (GetManifestResourceStream возвращает null) - C#

Узнай цену своей работы

Формулировка задачи:

Здесь скрины исключения и файла ресурса *resx: Странно делаю всё по примерам с msdn, но ничего не выходит, GetManifestResourceStream возвращает null, хотя я указал правильное имя файла . Я уже не знаю что делать, весь день в гугле искал
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Windows.Forms;
 
namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            System.IO.Stream file = Assembly.GetExecutingAssembly().GetManifestResourceStream("Sturtbutton.png");
 
            this.pictureBox1.Image = Image.FromStream(file);
        }
    }
}

Решение задачи: «Извлечение внедрённых ресурсов (GetManifestResourceStream возвращает null)»

textual
Листинг программы
using System;
using System.IO;
using System.Reflection;
using System.Resources;  // нужна System.Windows.Forms.dll
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args) {
            var names = Assembly.GetExecutingAssembly()
                .GetManifestResourceNames();
            if (names == null || names.Length == 0)
                throw new InvalidOperationException("No resources in asm.");
 
            Stream mfStream = Assembly.GetExecutingAssembly()
                .GetManifestResourceStream(names[0]);
 
            using (var resReader = new ResourceReader(mfStream)) {
                string resType;
                byte[] resData;
 
                resReader.GetResourceData("Lama_Alpaka_Trekking_Welschnofen_Carezza_05",
                    out resType, out resData);
 
                int startIndex = 0;
                // поиск начала изображения
                for (int i = 0; i < resData.Length - 1; i++) {
                    if (resData[i] == 0xFF && resData[i + 1] == 0xD8) {
                        startIndex = i;
                        break;
                    }
                }
 
                using (var file = new FileStream(@"C:\Development\lama2.jpg",
                    FileMode.OpenOrCreate)) {
                    file.Write(resData, startIndex, resData.Length - startIndex);
                }
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.667 из 5