Saya menyimpan PNG sebagai sumber daya yang disematkan dalam sebuah assembly. Dari dalam majelis yang sama saya memiliki beberapa kode seperti ini:
Bitmap image = new Bitmap(typeof(MyClass), "Resources.file.png");
File, bernama "file.png" disimpan di folder "Resources" (dalam Visual Studio), dan ditandai sebagai resource yang disematkan.
Kode gagal dengan pengecualian yang mengatakan:
Resource MyNamespace.Resources.file.png tidak dapat ditemukan di kelas MyNamespace.MyClass
Saya memiliki kode identik (dalam rakitan berbeda, memuat sumber daya berbeda) yang berfungsi. Jadi saya tahu tekniknya adalah suara. Masalah saya adalah saya akhirnya menghabiskan banyak waktu untuk mencoba mencari tahu jalan yang benar. Jika saya bisa menanyakan (misalnya di debugger) perakitan untuk menemukan jalur yang benar, itu akan menyelamatkan saya dari beban sakit kepala.
Saya mendapati diri saya lupa bagaimana melakukan ini setiap saat, jadi saya hanya membungkus dua baris satu yang saya butuhkan di sebuah kelas kecil:
sumber
Saya menduga bahwa kelas Anda berada di namespace yang berbeda. Cara kanonik untuk menyelesaikannya adalah dengan menggunakan kelas sumber daya dan sumber daya yang sangat diketik:
Gunakan pengelola sumber daya IDE untuk menambahkan sumber daya.
sumber
Saya menggunakan metode berikut untuk mengambil sumber daya yang disematkan:
Saya kemudian menyebutnya dengan jalur dalam proyek:
sumber
Nama sumber daya adalah ruang nama ditambah ruang nama "palsu" dari jalur ke file. Ruang nama "pseudo" dibuat oleh struktur sub folder menggunakan \ (garis miring terbalik), bukan. (titik).
Panggilan berikut:
akan mengembalikan aliran my.xml yang terletak di folder-struktur sumber daya \ xml di ruang nama: my.namespace.
sumber