我完全新的资源文件,但有必要对我来说,我的部署应用程序一次点击,这似乎忽略了我所有的外部文件(图片,.ini文件等) - 而不是花时间试图弄明白,我想我会学习如何使用资源文件正确。
通过SO搜索后,我发现很多代码,我已经建立了我的资源文件。 到目前为止,它仅包含字符串,我本以为这是简单的!? 唉...
所以,我有我的DLL(ValhallaLib.dll)和与资源处理(这些功能都举行了静态辅助类,在我的所有随机的,但有用的功能,生活中)这两个函数:
public static Bitmap getImageByName(string imgName)
{
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
string resName = asm.GetName().Name + ".Properties.Resources";
var rm = new System.Resources.ResourceManager(resName, asm);
return (Bitmap)rm.GetObject(imgName);
}
public static string getStringByName(string var)
{
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
string resName = asm.GetName().Name + ".Properties.Resources";
var rm = new ResourceManager(resName, asm);
return rm.GetString(var);
}
而我试图打电话给他们一个简单的:
CHelpers.getStringByName("db_host_address");
现在,比得到一个MissingManifestException其他...我的问题是,我不知道(和似乎无法找到一个直接的答案!)的什么resName
应该的。 我的资源文件名为: StringResource.resx
-然而,它不是说Assembly.ValhallaLib.StringResource的情况。
任何人都可以提供一些指导吗?
更新我已经试过global::ValhallaLib.StringResource
-但是这算不上什么,我之后。
更新2解决它。 我设法得到它一起工作:
public static string getStringByName(string var)
{
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
string resName = asm.GetName().Name + ".Properties.Resources";
var rm = new ResourceManager("ValhallaLib.StringResource", asm);
return rm.GetString(var);
}
我不知道为什么,我发现,这样过于复杂。 可能是因为我已经有大约2小时睡觉。
干杯那些谁尝试过,虽然:)