Имя: Пароль:
IT
 
C#, проблема с ресурсами
0 batmansoft
 
18.12.13
11:50
Добрый день. Я добавил в проект визуал студии 201 ресурс и вот такой код:

   class Program
    {
        static void Main(string[] args)
        {
            string[] resNames = Assembly.GetCallingAssembly().GetManifestResourceNames();
            foreach (string name in resNames)
            {
                Console.WriteLine(name);
            }
            Console.WriteLine("****************");

            Console.Read();
        }
    }

но он почему то ничего не выводит (ни одного имени ресурса). Подскажите плз, в чем может быть проблема)?
1 Jaap Vduul
 
18.12.13
11:58
Может у тебя ресурсы в отдельной сборке?
2 batmansoft
 
18.12.13
12:01
нет, в той же
3 Jaap Vduul
 
18.12.13
12:06
И, кстати, непонятно:
>> ...ничего не выводит (ни одного имени ресурса)
Имена ресурсов и не должны выводиться, но должны выводиться имена внедрённых в сборку ресурсных файлов.
4 batmansoft
 
18.12.13
12:09
(3) Да, это я и имел в виду. Имена внедренных в сборку ресурсных файлов. Не выводится ни одного.
5 Serginio1
 
18.12.13
12:13
А почему ты считаешь, что они есть?
6 batmansoft
 
18.12.13
12:18
(5) Потому что я их туда добавлял
7 Serginio1
 
18.12.13
12:18
Reflector их видит?
8 Jaap Vduul
 
18.12.13
12:30
Объявление Main() вот так измени:

[MethodImpl(MethodImplOptions.NoInlining)]
static void Main(string[] args)
9 batmansoft
 
18.12.13
13:17
(8) не помогло.
А что, кстати, такое MethodImpl?
10 kot_bcc
 
18.12.13
14:23
GetCallingAssembly() -> GetExecutingAssembly()
11 Serginio1
 
18.12.13
15:10
Или typeof(Program).Assembly
12 batmansoft
 
18.12.13
18:14
(10) спасибо, помогло
13 batmansoft
 
18.12.13
19:10
Еще подскажите пожалуйста, как перебрать все ресурсы в ResourceSet?
14 kot_bcc
 
18.12.13
19:36
for(IDictionaryEnumerator e = myResourceSet.GetEnumerator(); e.MoveNext(); )
{
  Console.WriteLine("{0}: {1}", e.Key, e.Value);
}
15 batmansoft
 
18.12.13
19:47
(14) спасибо
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан