맞춤형 컨트롤러 (서비스 포함) 용 T4 템플릿을 만들려고합니다. 그러나, 나는 몇 가지 문제를 설정하고있다. 나는 현재 T4 툴 에디터와 TextTemplatingFileGenerator를 Custom Tool로 사용하고 있습니다. 실험 할 때 몇 가지 문제가 있습니다 :T4 템플릿을 사용하는 상황이 있습니다.
1 : MvcTextTemplateHost를 사용해 봅니다. mvcHost = (MvcTextTemplateHost) (Host); 그것은 "형식 또는 네임 스페이스 이름 MvcTextTemplateHost 찾을 수 없습니다 (사용 지시문 또는 어셈블리 참조가 누락되었습니다.). 사용자 지정 도구를 지우려면 말했지만 내가 어떻게 생성 된 T4 파일을 볼 수 있는지 궁금 해서요.
2 : 또 다른 접근 방식은 Steve Sanderson의 CustomTemplate 이었지만 DynamicTransform이 발견되지 않아 거기에서 문제가 발생하여 어디에서 파일을 사용할 수 있는지 궁금합니다. 도구를 지울 필요가 있다면 ?이 들어, 다음 어떻게 생성 된 샘플 파일을 보려면 어떻게해야합니까 대단히 감사합니다
최대 길만
일부 샘플 코드 :.
,<#@ Template Language="C#" HostSpecific="True" Inherits="DynamicTransform" #>
<#@ Output Extension="cs" #>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
namespace someNamespace
{
<#
var modelType = (CodeType)Model.ModelType;
var modelName = modelType.Name;
var modelNamePlural = Model.ModelTypePluralized;
var modelVariable = modelName.ToLower();
var relatedEntities = ((IEnumerable)Model.RelatedEntities).OfType<RelatedEntityInfo>();
var primaryKeyProperty = modelType.VisibleMembers().OfType<CodeProperty>().Single(x => x.Name == Model.PrimaryKey);
var routingName = Regex.Replace(Model.ControllerName, "Controller$", "", RegexOptions.IgnoreCase);
var isObjectContext = ((CodeType)Model.DbContextType).IsAssignableTo<System.Data.Objects.ObjectContext>();
#>
public class foo
{
//This is a basic comment.
}
}
문제를 재현하는 간단한 템플릿 코드를 게시 할 수 있습니까? – FuleSnabel
생성 된 코드를 보는 한 가지 방법은 사용자 지정 도구를 지정하는 것입니다. TextTemplatingFilePreprocessor – FuleSnabel
DynamicTransform 클래스가 정의 된 위치를 파악할 수있는 경우 T4에서이 어셈블리를 다음과 같이 참조 할 수 있습니다. <# @ assembly name = "$ (SolutionDir) \ bin \ Debug \ TheDynamicTransformAssembly.dll "#> – FuleSnabel