다음을 통해 공유


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

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

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

참고 항목

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

런타임 애플리케이션의 경우 전처리된 텍스트 템플릿을 사용하는 것이 좋습니다. T4 텍스트 템플릿을 사용하여 런타임 텍스트 생성을 참조하세요.

애플리케이션에서 컴파일 타임에 고정된 템플릿 집합을 사용하는 경우 전처리된 텍스트 템플릿을 사용하기가 더 쉽습니다. Visual Studio가 설치되지 않은 머신에서 애플리케이션을 실행하는 경우에도 이 방법을 사용할 수 있습니다. 자세한 내용은 T4 텍스트 템플릿을 사용하여 런타임 텍스트 생성을 참조하세요.

애플리케이션에서 텍스트 템플릿 실행

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

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

애플리케이션에서 템플릿을 찾아 제공해야 하며 출력을 처리해야 합니다.

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

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

Microsoft.VisualStudio.TextTemplating.EngineMicrosoft.VisualStudio.TextTemplating.*.0.dll에 정의되어 있고 ITextTemplatingEngineHostMicrosoft.VisualStudio.TextTemplating.Interfaces.*.0.dll에 정의되어 있습니다.

이 섹션의 내용

연습: 사용자 지정 텍스트 템플릿 호스트 만들기 Visual Studio 외부에서 텍스트 템플릿 기능을 사용할 수 있도록 하는 사용자 지정 텍스트 템플릿 호스트를 만드는 방법을 보여 줍니다.

참조

ITextTemplatingEngineHost