Assembly.GetManifestResourceNames () исключение из-за динамической сборки - PullRequest
4 голосов
/ 19 мая 2011

Если я запускаю модульный тест (mstest), я получаю исключение, если я вызываю assembly.GetManifestResourceNames():

Вызванный элемент не поддерживается в динамической сборке.

Это проблемный код:

Dim assembly As Assembly = Assembly.GetAssembly(Me.GetType())
Dim names = assembly.GetManifestResourceNames()

Но если я правильно понимаю документация , он должен работать, и только если я использую AssemblyBuilder.GetManifestResourceNames(), я должен получить это исключение.

Если я пытаюсь пройтись по источникам .NET, я получаю сообщение:

Нет источника, доступного для mscorlib.dll! System.Reflection.Emit.InternalAssemblyBuilder.GetManifestResourceNames ()

Почему выдается это исключение?Я что-то пропустил?

Я забыл упомянуть, что в тесте я использую Moq (с опцией mock.CallBase = True).

Ответы [ 2 ]

2 голосов
/ 12 сентября 2011

Я нашел обходной путь: если я сделаю процедуру общей (статической в ​​c #), где вызывается метод assembly.GetManifestResourceNames (), она работает.

0 голосов
/ 23 июня 2016

Я не мог заставить его работать только с использованием static, но я нашел другое решение.

Мои настройки:

  1. Проект MVC (веб-сайт) (Список литературы 2)
  2. Логический проект (Список литературы 3)
  3. Библиотека содержимого (только файлы)

Мой сайт вызвал метод в проекте логики, который пытался получить доступ к GetManifestResourceNames() из библиотеки контента. Это привело к ошибке.

Затем я удалил ссылку на контент из проекта логики и добавил ее прямо на мой сайт. Других изменений нет, и теперь это сработало.

...