Извлечение внедрённых ресурсов (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);
}
}
}
}
}