Share via


사용자 지정 호스트를 사용하여 텍스트 템플릿 처리

텍스트 템플릿 변환 프로세스에서는 텍스트 템플릿 파일을 입력으로 사용하고 텍스트 파일을 출력으로 생성합니다. Visual Studio에서나 Visual Studio가 설치된 컴퓨터에서 실행되는 독립 실행형 응용 프로그램에서 텍스트 변환 엔진을 호출할 수 있습니다. 그러나 텍스트 템플릿 호스트를 제공해야 합니다. 이 클래스는 템플릿을 환경에 연결하여 어셈블리, 포함 파일 등의 리소스를 찾고 출력 및 오류 메시지를 처리합니다.

Visual Studio에서 실행될 패키지나 확장을 작성하는 경우 고유 호스트를 작성하는 대신 텍스트 템플릿 서비스를 사용하십시오.자세한 내용은 VS 확장에서 텍스트 변환 호출을 참조하십시오.

참고

서버 응용 프로그램에서는 텍스트 템플릿 변환을 사용하지 않는 것이 좋으며,단일 스레드에서만 텍스트 템플릿 변환을 사용하는 것이 좋습니다.텍스트 템플릿 엔진에서는 단일 AppDomain을 사용하여 템플릿을 변환하고 컴파일하고 실행하기 때문입니다.변환된 코드는 스레드로부터 안전하도록 설계되지 않았습니다.텍스트 템플릿 엔진은 디자인 타임에 Visual Studio 프로젝트에 있는 파일을 연속으로 처리하도록 설계되었습니다.

런타임 응용 프로그램의 경우에는 전처리된 텍스트 템플릿을 사용하십시오(T4 텍스트 템플릿을 사용하여 런타임 텍스트 생성 참조).

응용 프로그램에서 컴파일 타임에 고정된 템플릿 집합을 사용하는 경우 전처리된 텍스트 템플릿을 사용하기가 더 쉽습니다. 또한 Visual Studio가 설치되지 않은 컴퓨터에서 응용 프로그램이 실행되는 경우에도 이 방법을 사용할 수 있습니다. 자세한 내용은 T4 텍스트 템플릿을 사용하여 런타임 텍스트 생성을 참조하십시오.

응용 프로그램에서 텍스트 템플릿 실행

텍스트 템플릿을 실행하려면 Engine의 ProcessTemplate 메서드를 호출합니다.

using Microsoft.VisualStudio.TextTemplating;
...
Engine engine = new Engine();
string output = engine.ProcessTemplate(templateString, host);

응용 프로그램에서 템플릿을 찾아 제공해야 하며 출력을 처리해야 합니다.

host 매개 변수에서 ITextTemplatingEngineHost를 구현하는 클래스를 제공해야 합니다. 이 클래스는 엔진에서 다시 호출됩니다.

호스트는 오류를 기록하고 어셈블리 및 포함 파일에 대한 참조를 확인할 있어야 하며 템플릿이 실행될 수 있는 응용 프로그램 도메인을 제공하고 각 지시문에 적절한 프로세서를 호출할 수 있어야 합니다.

EngineMicrosoft.VisualStudio.TextTemplating.*.0.dll에 정의되고, ITextTemplatingEngineHostMicrosoft.VisualStudio.TextTemplating.Interfaces.*.0.dll에 정의됩니다.

단원 내용

참조

ITextTemplatingEngineHost

관련 단원