【问题标题】:GetString from Custom Database Resource从自定义数据库资源中获取字符串
【发布时间】:2015-07-04 14:20:53
【问题描述】:

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

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

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

有什么帮助吗?

【问题讨论】:

    标签: c# asp.net-mvc culture


    【解决方案1】:

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

    它现在正在工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 2011-05-24
      • 2014-05-11
      • 2023-03-19
      相关资源
      最近更新 更多