我正在尝试为自定义控制器(带有服务)创建 T4 模板。但是,我在设置时遇到了一些问题。我目前使用有形的免费 T4 工具编辑器和 TextTemplatingFileGenerator 作为自定义工具。我在实验时遇到了几个问题:
1:我尝试使用 MvcTextTemplateHost mvcHost = (MvcTextTemplateHost)(Host); 它说“找不到类型或命名空间名称 MvcTextTemplateHost(您是否缺少 using 指令或程序集引用?)。它说要清除自定义工具,但我想知道如果我如何查看生成的 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.
}
}