개요
작업을 하다보면 같은 패턴 내용의 파일을 반복해서 생성해야하는 경우가 있다.
이럴 때 별도의 Template 파일을 만들어 놓고 복사해서 사용하면 다소 편한데, 이보다 편한 방법이 있어서 소개하고자 한다.
템플릿 추가 하기
필자는 IUnityContainer, IEventAggregator를 매개변수로 받고 ReactiveObject를 상속받는 ViewModel 클래스를 자주 생성한다. 이를 예시로 템플릿을 추가해보고자 한다.
템플릿 파일 작성하기
템플릿 파일 생성
아래 경로에 빈 파일을 생성한다.
경로 : %USERPROFILE%\Documents\Visual Studio <YOUR_VS_VERSION>\Templates\ItemTemplates\Visual C#

템플릿 파일 작성
템플릿을 통해 파일을 생성한다면 아래와 같이 나타내려고 한다.
using System;
using Microsoft.Practices.Unity;
using Prism.Events;
using ReactiveUI;
namespace SampleProject
{
public class Sample : ReactiveObject
{
#region Internal Field
private readonly IUnityContainer _container;
private readonly IEventAggregator _eventAggregator;
#endregion
#region Properties
#endregion
#region Commands
#endregion
#region Event
#endregion
#region Constructor
public Sample(IUnityContainer container, IEventAggregator eventAggregator)
{
_container = container ?? throw new ArgumentNullException(nameof(container));
_eventAggregator = eventAggregator ?? throw new ArgumentNullException(nameof(eventAggregator));
}
#endregion
#region Functions
#endregion
}
}
위와 같이 파일이 생성되려면 아래와 같이 템플릿 파일을 작성하면 된다.
- $rootnamespace$ : 파일이 생성되는 위치의 namespace가 자동으로 할당됩니다.
- $safeitemname$ : 파일이 생성될 때의 파일 이름이 자동으로 할당됩니다.
using System;
using Microsoft.Practices.Unity;
using Prism.Events;
using ReactiveUI;
namespace $rootnamespace$
{
public class $safeitemname$ : ReactiveObject
{
#region Internal Field
private readonly IUnityContainer _container;
private readonly IEventAggregator _eventAggregator;
#endregion
#region Properties
#endregion
#region Commands
#endregion
#region Event
#endregion
#region Constructor
public $safeitemname$(IUnityContainer container, IEventAggregator eventAggregator)
{
_container = container ?? throw new ArgumentNullException(nameof(container));
_eventAggregator = eventAggregator ?? throw new ArgumentNullException(nameof(eventAggregator));
}
#endregion
#region Functions
#endregion
}
}
vstemplate 파일 추가하기

vstemplate 파일은 생성한 템플릿 파일 혹은 파일 목록에 대한 설정을 정의하는 xml 형식의 파일이다.
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
<TemplateData>
<Name>ReactiveUI ViewModel 템플릿</Name>
<Description>ReactiveUI을 상속받고 생성자 매개변수로 IUnityContainer, IEventAggregator를 입력받는 ViewModel을 생성합니다.</Description>
<ProjectType>CSharp</ProjectType>
<SortOrder>10</SortOrder>
<DefaultName>ViewModel</DefaultName>
</TemplateData>
<TemplateContent>
<References />
<ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">ViewModel_Template.cs</ProjectItem>
</TemplateContent>
</VSTemplate>
결과
아래와 같이 파일 추가시 템플릿을 확인할 수 있다.

'Software Develop > ETC' 카테고리의 다른 글
github pull request 템플릿 페이지 만들기 (0) | 2023.01.16 |
---|---|
코드리뷰에 관하여 (0) | 2022.02.08 |