6

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

我得到了所有代码都忘记了控制器和操作我唯一的问题是我在 T4 模板文件中收到此错误并且我不理解它:

编译转换:命名空间不能直接包含字段或方法等成员

这是我的代码:

<#@ 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());
    }
#>

还有一个外部类可以获取控制器和操作,但我认为当前问题没有必要。

我究竟做错了什么?

4

1 回答 1

6

您现在可能已经弄清楚了,但是:

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

注意';'

而是写:

<#@ import namespace="System.Web.Http"#>
于 2013-06-08T10:23:45.423 回答