2015-07-04 6 views
0

Я использовал следующую статью для использования пользовательских ресурсов из базы данных.GetString из пользовательского ресурса базы данных

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, но не обрабатывался в коде пользователя

Дополнительная информация: Не удалось t найдите любые ресурсы, подходящие для указанной культуры или нейтральной культуры. Убедитесь, что «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

Поскольку нет прямого метода, чтобы получить ресурс строки по имени ключа, я просто унаследовать класс ресурсов по новому классу «ResxExtended» и добавил метод:

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

Он работает сейчас.