Resources are sometimes tricky, depending on where (which Class and which
Project the class is being used in) the resource has been added.
Try something like this :
System.Reflection.Assembly asm =
System.Reflection.Assembly.GetExecutingAssembly();
string[] sa_ResourceNames = asm.GetManifestResourceNames();
and look at the result in the sa_ResourceNames and find the resource you are
looking for.
I also use a Method in each class where resource's are used :
In this case the Class is called "Cards"
There is a resource called : "Desktop.mj10777.Array.48.gif"
- in your case: "resource" and "resource1"
This class is used in the project (which can of cource can change!) :
"CardGame"
sa_ResourceNames[0] has the result :
"CardGame.Cards.Desktop.mj10777.Array.48.gif"
On GetAssemblyName looks for ".Cards." and returns "CardGame.Cards." in the
Field s_AssemblyName and
is called on Construction (s_AssemblyName = OnGetAssemblyName(); ) for use
later :
bmp_Work = new
Bitmap(asm.GetManifestResourceStream(s_AssemblyName+"Desktop.mj10777.Array.4
8.gif"));
Since Compact cannot return the name of the class, ".????." must be
hardcoded for each class (which is a pity).
Hope this helps
Mark Johnson, Berlin Germany
(e-mail address removed)
#region OnGetAssemblyName
/// <summary>
/// <list type="table">
/// <item><description>Retrieve Assemblyname as used in Resource
file</description></item>
/// </list>
/// </summary>
/// <remarks>
/// <para></para>
/// </remarks>
/// <returns>Assembly name up to (including) ".Card." returned</returns>
/// <seealso
cref="Cards(System.Windows.Forms.Panel,String,Int32,Int32,Int32)"/>
/// <seealso cref="Cards.s_AssemblyName"/>
public String OnGetAssemblyName()
{
System.Reflection.Assembly asm =
System.Reflection.Assembly.GetExecutingAssembly();
string[] sa_ResourceNames = asm.GetManifestResourceNames();
String s_AssemblyName = "";
for (int i=0,x=0;i<sa_ResourceNames.Length;i++)
{ // "CardGame.Cards.Desktop.mj10777.Array.48.gif"
x = sa_ResourceNames.IndexOf(".Cards.");
if (x > 0)
{ // "CardGame.Cards."
s_AssemblyName = sa_ResourceNames.Substring(0,x+7);
break;
} // if (x > 0)
} // for (int i=0;i<sa_ResourceNames.Length;i++)
return s_Assembly;
} // public String OnGetAssemblyName()
#endregion