2013-06-06 10 views
6

Ciao, sto solo iniziando con i modelli T4 e ho bisogno di generare un file javascript basato sulle azioni nel mio controller.T4 uno spazio dei nomi non può contenere direttamente membrane come campi o metodi

ho ottenuto il codice capito tutto dimenticando i regolatori e le azioni il mio unico problema è che sto ottenendo questo errore nel file di modello T4 e io non lo capisco:

Compilazione trasformazione: Uno spazio dei nomi non è possibile contenere direttamente i membri come i campi o metodi

Questo è il mio codice:

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

C'è anche un exte classe di riferimento che ottiene i controller e le azioni ma non penso sia necessario per il problema attuale.

Cosa sto sbagliando?

risposta

5

Probabilmente avete capito questo, ormai, ma:

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

Annotare il ';'

invece scrivere:

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