c# - T4 命名空间不能直接包含字段或方法等成员

标签 c# t4

您好,我刚开始使用 T4 模板,我需要根据 Controller 中的操作生成一个 javascript 文件。

我把代码弄明白了,忘记了 Controller 和操作,我唯一的问题是我在 T4 模板文件中遇到了这个错误,我不明白它:

Compiling transformation: A namespace cannot directly contain members such as fields or methods

这是我的代码:

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="$(TargetPath)" #>

<#@ import namespace="System.Reflection" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="eConnect.WebApi.Helpers.T4.ControllerDetails" #>
<#@ import namespace="System.Web.Http;"#>
<#@ output extension=".js" #>

define(['services/logger', 
        'services/jsonDataService', 
        'services/config', 
        'services/cachingService'],
        function (logger, jsonDataService, config, cache) {
            var dataService = { };
            return dataService;
        });

<#
    var controllers = ControllersInfo.GetControllers();
    foreach(var controller in controllers) {
        Dictionary<string, ParameterInfo[]> actions = ControllersInfo.GetAllCustomActionsInController(controller, new HttpGetAttribute());
    }
#>

还有一个外部类可以获取 Controller 和操作,但我认为对于当前的问题来说这不是必需的。

我做错了什么?

最佳答案

你现在可能已经明白了,但是:

<#@ import namespace="System.Web.Http;"#>

注意';'

改为写:

<#@ import namespace="System.Web.Http"#>

关于c# - T4 命名空间不能直接包含字段或方法等成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16955106/

相关文章:

visual-studio-2013 - VS 2013 MVC项目中的Web.tt导致错误 "value does not fall within the expected range"

c# - 创建一个 C# 服务来监视无限循环中的变化

c# - NuGet - 安装后 T4 文件属性不同

c# - 什么是 System.Web.Extensions?

c# - 插入后获取实体导航属性

c# - 如何使用一组笛卡尔坐标重复运行 .NET 单元测试

c# - 如何在声明中有条件地设置基类

powershell - 如何添加在 Visual Studio 2013 脚手架中使用的新脚手架?

c# - 解析 DateTime C# 不适用于我的格式

c# - ASP.NET 请求...如何处理 Linq DataContext?