Estoy usando T4 para generar algunas pantallas y código de nivel medio para un proyecto, y me gustaría utilizar Linq para simplificar parte de mi código de plantilla. Sin embargo, cuando intento usar Linq, la plantilla informa un error de sintaxis.¿Cómo puedo usar Linq en una plantilla T4?
65
A
Respuesta
95
De forma predeterminada en Visual Studio 2008 (y como se usa en la mayoría de los ejemplos en línea), la plantilla se compila con el Framework 2.0, que no incluye Linq. (Ver MSDN forum thread)
Para resolver el problema, se necesitan tres pasos:
- En atributo de idioma de su plantilla, especifique "C# v3.5" o "VBv3.5" - no se requiere este paso para VS2010, donde .Net 4.0 siempre se usa.
- Agregar una directiva de montaje para System.Core.dll
- importe el espacio System.Linq
La plantilla ahora se verá algo como esto:
<#@ template language="C#v3.5" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
Ahora puede utilizar LINQ y otras nuevas funciones de idioma en su plantilla.
Cuestiones relacionadas
- 1. Usar clase dentro de una plantilla T4
- 2. No puedo usar mi clase personalizada en la plantilla T4
- 3. ¿cómo puedo obtener intellisense en una plantilla T4?
- 4. Operando plantillas T4 de otra plantilla T4
- 5. Ejecutando una plantilla T4 usando C#
- 6. plantilla de T4 y Assembly.Load
- 7. ¿Puedo usar T4 programáticamente desde C#?
- 8. Establecer un punto de interrupción en una plantilla T4
- 9. pase un objeto a la plantilla T4
- 10. Plantilla T4 para NHibernate? - No Fluido NHibernate
- 11. ¿Cómo usar T4 para generar dos archivos al mismo tiempo desde una plantilla?
- 12. Desactivar VS2010 Validación de plantilla T4
- 13. ¿Cómo puedo usar la partición en LINQ?
- 14. ¿Cómo especificar la visibilidad de la clase de plantilla para una plantilla preprocesada T4?
- 15. ¿Cómo agregar una dependencia a un archivo arbitrario en una plantilla T4?
- 16. Plantilla EntityFramework CTP5 DbContext T4 Plantilla "virtual" palabra clave
- 17. C# POCO T4 plantilla, generar interfaces?
- 18. Obtener el nombre del controlador en la plantilla Ver T4
- 19. Cómo activar la plantilla T4 del script de PowerShell
- 20. Ruta de salida para la plantilla T4 compartida
- 21. Plantilla T4 y parámetros de tiempo de ejecución
- 22. Plantilla de depuración T4 en VS 2010 bloqueos IDE
- 23. ¿Cómo abrir un archivo en una ruta relativa usando T4?
- 24. ¿Puedo redistribuir el motor de Microsoft T4 con mi producto?
- 25. Cómo verificar el tipo de datos de una propiedad en una entidad en un archivo de plantilla T4
- 26. No se puede hacer referencia a un conjunto en una plantilla T4
- 27. ¿Cómo puedo eliminar una plantilla de sitio?
- 28. Leer clases en un espacio de nombres en una plantilla t4
- 29. ¿Cómo puedo convertir una plantilla EJS en una cadena?
- 30. ¿Cómo puedo llamar indirectamente una macro en una plantilla Jinja2?
Tuve que usar <# @ assembly name = "System.Core, Version = 3.5.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089" #> para obtener la versión 3.5 de System.Core.dll. –
Por casualidad, ¿el proyecto "que contiene" era un proyecto 2.0/3.0? Eso puede explicar por qué no sabía cómo encontrar System.Core sin el nombre completo. – GalacticCowboy
Esto funcionó para mí después de que cambié el idioma de 'C#' a 'C# v3.5'. ¡Gracias! ¡Qué extraño cómo el intellisense no mostró esto como una opción! –