从自定义数据库资源获取字符串

本文关键字:获取 字符串 资源 数据库 自定义 | 更新日期: 2023-09-27 18:01:12

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

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

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

有什么帮助吗?

从自定义数据库资源获取字符串

由于没有直接的方法通过键名获取字符串资源,我只是通过新的类"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");

它现在正在工作。