Исключение диспетчера ресурсов, кажется, что никакое решение не работает

Пытаясь использовать диспетчер ресурсов для получения строки из ресурса в проекте, я продолжаю получать следующее исключение:

Произошло необработанное исключение типа system.Resources.MissingManifestResourceException в mscorlib.dll.

Поэтому я решил создать консольное приложение, чтобы протестировать его, и у меня все еще возникает та же проблема, я пробовал различные решения и всегда получаю одно и то же исключение.

Вот мой код:

using System;
using System.Reflection;
using System.Resources;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ResourceManager rm = new ResourceManager("Resource1", Assembly.GetExecutingAssembly());
            string someString = rm.GetString("test");

            Console.ReadKey();
        }
    }
}

Файл моих ресурсовМоя структура решения


person Community    schedule 09.01.2017    source источник
comment
Прочитав здесь, вы сможете для доступа к ресурсу через: string someString = ConsoleApplication1.Resources.Resource1.test;   -  person Quantic    schedule 09.01.2017
comment
Пришлось внести небольшое редактирование, по какой-то причине часть ресурсов не появилась. Но спасибо, что решаете мою проблему! Хотя я хотел бы знать, почему другое решение не сработает для меня.   -  person    schedule 09.01.2017


Ответы (3)


Вам нужно включить пространство имен для вашего ресурса, попробуйте

ResourceManager rm = 
   new ResourceManager("ConsoleApplication1.Resource1", Assembly.GetExecutingAssembly());

Я предпочитаю использовать информацию о типе, подобную этой

 ResourceManager rm = new ResourceManager(typeof(ConsoleApplication1.Resource1));

Вот отличная заметка о с помощью диспетчера ресурсов.

person RamblinRose    schedule 09.01.2017
comment
Это именно то, что было тогда, спасибо за ссылку и решение. Я планирую хорошо использовать менеджер ресурсов в своем проекте, так что это будет большим подспорьем. - person ; 09.01.2017
comment
Рад, что помогло :) - person RamblinRose; 09.01.2017

Вы должны полностью указать имя ресурса:

ResourceManager manager = new ResourceManager("ConsoleApplication1.Resource1", Assembly.GetExecutingAssembly());
person Sorin Buse    schedule 09.01.2017

Ответ, предоставленный Quantic, сработал для меня, спасибо Quantic!

string someString = ConsoleApplication1.Resources.Resource1.test;
person Community    schedule 09.01.2017