Я использую Razor Engine ( razorengine.codeplex.com ) в среде, отличной от MVC.Я компилирую шаблоны, которые хранятся в файлах, и использую @inherits
для поддержки intellisense.
- RazorEngine Assembly
- Пользовательская сборка - ссылается на RazorEngine, содержит
View<>
и устанавливает View<>
какbaseclass - Веб-приложение - ссылки RazorEngine, Custom Assembly, содержит файлы шаблонов .cshtml
Все файлы cshtml имеют следующую директиву @inherits
:
@inherits View<SomeModel>
Выдается ошибка:
Тип представления пространства имен не найден, вам не хватает ссылки на сборку?
Мой файл web.config содержит следующую запись:
<add namespace="CustomAssembly.NamespaceContainingViewClass" />
Я думаю, это как-то связано с другой записью <assemblies>
, где мой CustomAssembly
не упоминается.Это тот случай?Могу ли я скомпилировать с моим пользовательским базовым классом, который содержится в другой сборке?
ps Я не могу получить строгое имя для сборки, поскольку моя пользовательская сборка ссылается на сборку сторонней организации, которая нестрогое имя либо ...
Stacktrace:
at RazorEngine.Compilation.DirectCompilerServiceBase.CompileType(TypeContext context)
at RazorEngine.Templating.TemplateService.CreateTemplate(String template, Type modelType)
at RazorEngine.Templating.TemplateService.GetTemplate(String template, Type modelType, String name)
at RazorEngine.Templating.TemplateService.Compile(String template, Type modelType, String name)
at RazorEngine.Razor.Compile(String template, Type modelType, String name)