1

우리는 .NET 콘솔 응용 프로그램에서 템플릿 기반 컨텐츠 (이 경우 텍스트 및 HTML 형식의 맞춤형 전자 메일)를 빠르고 유연하게 생성하는 방법을 찾고 있습니다..NET 콘솔 앱에 적합한 템플릿 엔진은 무엇입니까?

VirtualPathProvider가없고 유효한 HttpContext.Current가 없습니다. 초기 실험에서 WebForms 뷰 엔진과 다른 .NET 웹 뷰 엔진을 사용하는 것이 매우 어려울 것입니다 (Spark , Razor)는 웹 응용 프로그램에서 실행되고 있다고 생각하게하기 위해 광범위한 배관 작업이 필요합니다.

내가 좋아하는 뭔가를하고 싶지 :

var customerTemplateData = GetTemplateDate(customer); 
var htmlBody = templateEngine.Render("template.html", customerTemplateData); 
var textBody = templateEngine.Render("template.txt", customerTemplateDate); 
SendMail("[email protected]", customer.Email, "Hey there!", htmlBody, textBody); 

을 나는 1,000 회 분 복잡한 중첩 데이터, 목록 내 목록의 많은, 함께하고 싶어. 전용 템플릿 엔진 또는 독립 맥락에서 웹보기 엔진을 실행하는 방법에 대한

모든 권고는 가장 극명하게 될 것이다 :

감사합니다,

딜런을

답변

3

Spark에서이 작업을 수행하는 방법에 대한 지침을 찾고 있다면 Spark 소스 코드에 Email and Text Templating Sample available here이라는 기능이 있습니다.

실제로이 샘플이 HttpContext 또는 다른 웹 인프라에 어떤 종속성도 없다는 점에 유의해야합니다. 완전히 독립적이며 콘솔 애플리케이션처럼 쉽게 실행할 수 있습니다. 이 도움이

희망,
모든 최고의,

+0

필자는 마침내 스파크를 얻을 수 있었지만 해킹 비트가 발생했습니다. 핵심 라이브러리에 두 가지 작은 변경 사항이 적용되어 App.config 파일에 의존하지 않고 SparkSettings를 직접 엔진에 주입했습니다 (어떤 이유로 든 콘솔 응용 프로그램에서 SparkConfiguration 핸들러를로드 할 수 없습니까?) 작업 코드가 내 Github 포크에 있습니다. 내 풀 요청을 수락하면 귀하의 답변을 수락합니다. :) –

+0

나는 탭에 풀 리크 (req)를 열었습니다. :) 그냥 제대로 돌아가려면 약간의 시간을 기다리는 중입니다.하지만 아주 좋게 보입니다. 공헌 해 주셔서 감사합니다. 그것은 받아 들인 대답보다 더 가치가 있습니다.) – RobertTheGrey

+0

좋아, 이제 주 repo를 참조 할 수 있습니다. 기여에 다시 한 번 감사드립니다. 코어 lib에 대한 변경은 필요하지 않지만 샘플을 올바르게 사용하도록 수정했습니다. 그것으로 재미있게 지내십시오! :) – RobertTheGrey

2

꽤 몇 가지 방법이 있습니다 명령 줄에서 템플리트 된 컨텐츠를 만드는 방법 중 하나 인 NVelocity가 있지만, 최근에 CodePlex (http://razorengine.codeplex.com/)의 Razor 파서 래퍼가 출시되었습니다.

+0

잘 나는이 이것을 투표! – Buildstarted

관련 문제