2012-04-18 2 views
4

У меня есть приложение для Windows, которое обращается к файлу в проекте библиотеки классов.Сильно наберите файлы ресурсов в C#

public static class Global 
{ 
    private static ResourceManager ResourceManager { get; set; } 

    static Global() 
    { 
     ResourceManager = new ResourceManager("MyClassLibraryProject.Resource", Assembly.GetExecutingAssembly()); 
    } 

    private static string GetValue (string name) 
    { 
     return (ResourceManager.GetString(name, Options.CultureInfo)); 
    } 

    public static string ProductName 
    { 
     get 
     { 
      return (GetValue(MethodBase.GetCurrentMethod().Name.Replace("get_", ""))); 
     } 
    } 
} 
` 

Я упаковал в ProductName свойство вручную в данном примере. Есть ли более простой способ доступа к строго типизированным именам для каждой строки в файле ресурсов.

ответ

5

Это может делать то, что вы ищете: http://msdn.microsoft.com/en-us/library/ccec7sz1.aspx

Поскольку типы недвижимости ресурсов определяются во время выполнения, вам нужен инструмент для анализа файла ресурса предварительно время компиляции и генерации хотел свойства. Resgen.exe сделает это, но вы можете создать собственный скрипт t4 или что-то еще.

Из документов:

Следующая команда считывает XML на основе входного файла myResources.resx и записывает файл с именем бинарных ресурсов myResources.resources. Он также генерирует файл C# с именем MyFile.cs с классом MyClass, который содержит строго типизированные свойства, которые соответствуют ресурсам, на которые ссылаются во входном файле. Класс MyClass содержится в пространстве имен с именем Namespace1.

ResGen myResources.resx myResources.resources /str:C#,Namespace1,MyClass,MyFile.cs

+0

Вот что я discivered. Visual Studio 2010 уже создает файл класса во время сборки с помощью инструмента 'ResXFileCodeGenerator'. Доступность класса, однако, является «внутренним», и если я его изменю, он будет заменен во время сборки. Есть ли способ настроить это поведение, чтобы я мог указать модификатор общедоступного доступа? –

+1

Нашел [здесь] (http://stackoverflow.com/questions/4274311/visual-studio-resx-file-default-internal-to-public). Не могу поверить, что я пропустил это. –

 Смежные вопросы

  • Нет связанных вопросов^_^