您好我刚刚开始使用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());
}
#>
还有一个外部类可以获取控制器和操作,但我认为这不是当前问题的必要条件。
我做错了什么?
答案 0 :(得分:6)
你现在可能已经弄明白了,但是:
<#@ import namespace="System.Web.Http;"#>
注意';'
而是写:
<#@ import namespace="System.Web.Http"#>