2013-06-06 8 views
6

Cześć Właśnie zaczynam od szablonów T4 i potrzebuję wygenerować plik javascript na podstawie działań w moim kontrolerze.T4 Przestrzeń nazw nie może bezpośrednio zawierać elementów, takich jak pola lub metody.

mam kod wszyscy zorientowali się, zapominając o kontrolery i akcje moim jedynym problemem jest to, że ja dostaję ten błąd w pliku szablonu T4 i nie rozumiem go:

Kompilacja transformację: Przestrzeń nazw nie może bezpośrednio zawierać elementy takie jak pola lub metody

to jest mój kod:

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

Istnieje również exte Klasa rnal, która dostaje kontrolerów i działania, ale nie uważam, że jest to konieczne dla obecnego problemu.

Co robię źle?

Odpowiedz

5

Prawdopodobnie masz to zorientowali się już, ale:

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

Zanotuj ';'

Zamiast pisać:

<#@ import namespace="System.Web.Http"#> 
Powiązane problemy