自定义数据库资源

时间:2015-07-04 14:20:54

标签: c# asp.net-mvc culture

我使用以下文章来使用数据库中的自定义资源。

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);
                   }
                }
---
}

另一方面,数据库资源表具有所有键的值。

任何帮助?

1 个答案:

答案 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");

现在正在运作。