Я использую RazorEngine для выполнения некоторых шаблонов на уровне обслуживания вне контекста MVC, и у меня возникают проблемы с сборками, которые не загружаются в AppDomain когда классы в этих сборках используются только в представлениях. Позвольте мне уточнить.RazorEngine - ссылочные сборки не загружаются, если они потребляются только в представлении
У меня есть некоторые шаблоны Razor, которые встроены в автономную сборку (назовем ее Assembly A).
Один из шаблонов (MyTemplate
) потребляет класс утилиты (MyHelperClass
), который находится в другой сборке (назовем его сборкой B).
Сборка A имеет жесткую ссылку на сборочные B.
Когда я пытаюсь разобрать шаблон, который ссылается MyHelperClass
я получаю знакомые, «Вы не нашли с помощью директивы или пространства имен сборки». Когда я отлаживаю и смотрю окно модулей в Visual Studio, я вижу, что сборка B не загружается в AppDomain. Если я отлаживаю код и загружаю сборку через промежуточное окно перед неудачной строкой кода, он работает.
Итак, кажется, что простое потребление в представлении недостаточно для платформы .NET для загрузки сборки в AppDomain. Я предполагаю, что это вполне может быть и в стандартном проекте MVC, хотя я не тестировал это.
Два вопроса на самом деле.
- Является ли ссылкой в представлении недостаточно, чтобы заставить среду загрузки загрузить сборку?
- В этой ситуации, что является лучшим способом заставить эту сборку загружаться без необходимости прибегать к
Assembly.Load
или ссылаться на фиктивный класс.