我使用以下文章来使用数据库中的自定义资源。
http://afana.me/post/aspnet-mvc-internationalization-store-strings-in-database-or-xml.aspx 我正在尝试使用此代码获取字符串资源:
string key = "Partner_Key";
string title = new System.Resources.ResourceManager(typeof(MyDBResources)).GetString(key);
但我得到错误:
类型的例外 ' System.Resources.MissingManifestResourceException'发生在 mscorlib.dll但未在用户代码中处理
其他信息:找不到适合的资源 指定的文化或中性文化。确保 " MyResources.MyDBResources.resources"是正确嵌入或 链接到汇编" [ProjectName]"在编译时,或所有的 所需的卫星组件可装载并完全签名。
资源提供者代码如下:
namespace MyResources {
public class MyDBResources {
private static IResourceProvider resourceProvider = new DbResourceProvider();
public static string Partner_Key {
get {
return (string) resourceProvider.GetResource("Partner_Key", CultureInfo.CurrentUICulture.Name);
}
}
---
}
另一方面,数据库资源表具有所有键的值。
任何帮助?
答案 0 :(得分:0)
由于没有按键名称获取字符串资源的直接方法,我只是通过新类“ResxExtended”继承Resource类并添加了一个方法:
public class ResxExtended : MyDBResources
{
private static IResourceProvider resourceProvider = new DbResourceProvider();
public static string GetStringResx(string resourcekey)
{
return (string)resourceProvider.GetResource(resourcekey, CultureInfo.CurrentUICulture.Name);
}
}
然后只是从视图中我们使用:
string title = [project].[namespace].ResxExtended.GetStringResx("PartnerKey");
现在正在运作。