microsoft.public.de.german.entwickler.dotnet.csharp,de.comp.lang.delphi.misc

18/11/2008 - 10:34 von Jon Baltimore | Report spam
Hallo,

ich versuche unter C# mit Borland 2006 mit folgender Funktion ein Image aus
der Resource zu laden, was nicht funktioniert. Das Image wird offenbar nicht
gefunden, ist aber definitiv im Project und in der Projectverwaltung
sichtbar.
Ich denke hier fehlt irgendwo der Hinweis im Project, da die Resource
eingebunden werden soll.
Weiss jemand was dazu getan werden muss?



Image GetResourceImage (string name)
{
Assembly assembly = System.Reflection.Assembly.GetCallingAssembly();
System.IO.Stream s = assembly.GetManifestResourceStream (name);
return Image.FromStream(s);
}
 

Lesen sie die antworten

#1 Norbert Ruessmann
18/11/2008 - 16:50 | Warnen spam
Hallo Jon,

ich hatte vor einiger Zeit ein àhnliches Problem mit einer XML-Datei. Diese
hatte z.B. den Namen "Test.xml", und das laden als Resource funktionierte
nicht.
Die Lösung: Mit dem Tool ILDASM (beim .NET SDK enthalten) kann man sich eine
Assembly genauer ansehen. Unter anderem zeigt es auch die Namen der
Resourcen. Bei meiner XML-Datei war der Name
"NRSoftware.MyNamespace.Test.xml", enthielt also den NameSpace. Mit diesem
konnte ich dann die Resource laden.

Es gibt übrigens eine überladene Methode für GetManifestResourceStream(),
die noch einen Type bekommt. Damit kann man dann die Resource auch laden,
ohne vorne den Namespace im Namen anzugeben.

Gruß
Norbert Ruessmann
http://www.devtracer.com

"Jon Baltimore" schrieb im Newsbeitrag
news:gfu2aa$n4b$
Hallo,

ich versuche unter C# mit Borland 2006 mit folgender Funktion ein Image
aus der Resource zu laden, was nicht funktioniert. Das Image wird offenbar
nicht gefunden, ist aber definitiv im Project und in der Projectverwaltung
sichtbar.
Ich denke hier fehlt irgendwo der Hinweis im Project, da die Resource
eingebunden werden soll.
Weiss jemand was dazu getan werden muss?



Image GetResourceImage (string name)
{
Assembly assembly = System.Reflection.Assembly.GetCallingAssembly();
System.IO.Stream s = assembly.GetManifestResourceStream (name);
return Image.FromStream(s);
}

Ähnliche fragen