Текущая версия v2.1 не предоставляет возможности выкладывать исходный код. В новой кодовой базе v3 есть функция отладки, которая позволяет вытолкнуть исходный код. По умолчанию он этого не делает, потому что я пытаюсь сделать код как можно более быстрым (и генерировать код дважды (один раз как CodeDom, один раз как строку) не идеально). Вам нужно включить флаг Debug
в вашей конфигурации:
var config = new TemplateServiceConfiguration { Debug = true };
var service = new TemplateService(config);
Это позволит читать исходный код при возникновении исключения.
Интересно, что, протестировав инфраструктуру компилятора Roslyn с использованием кодовой базы v3, он принимает строковый источник вместо CodeDom, поэтому я, вероятно, внесу будущее изменение, чтобы использовать его вместо CodeDom напрямую - это, в свою очередь, означает, что мы имеем прямой доступ к исходному коду, не беспокоясь о включении любого флага Debug
, который, скорее всего, не рекомендуется.
v3 (в настоящее время v3.0.7beta) доступна на Nuget (Install-Package RazorEngine
). В прошлые выходные я был нацелен на RTW, но так и не нашел его.