c# reflection t4

c# - Reflexión con T4 obtener ensamblajes.



reflection (1)

En una plantilla T4, el ensamblaje en ejecución no es suyo, sino uno del motor T4.

Para acceder a los tipos desde sus ensamblajes, debe realizar los siguientes pasos:

  1. Agregue una referencia a su ensamblaje a la plantilla. Pon eso en la parte superior de la misma:

    <#@ assembly name="$(SolutionDir)<Project>/bin/Debug/<Project>.dll" #>

  2. Importe el espacio de nombres de su ensamblaje. Pon eso en algún lugar debajo de la línea anterior:

    <#@ import namespace="<Project>.<Namespace>" #>

  3. Para acceder a los tipos en este conjunto, seleccione uno de ellos y obtenga el conjunto de este:

    var assembly = typeof(<Type in assembly>).Assembly; var types = assembly.GetTypes() .Where(t => String.Equals( t.Namespace, "RepoLib.Rts.Web.Plugins.Profiler.Models", StringComparison.Ordinal)) .ToArray();

Quiero obtener toda la clase en el ensamblaje específico este es mi código

var assembly=Assembly.GetExecutingAssembly(); var assemblies = assembly.GetTypes().Where(t => String.Equals(t.Namespace, "RepoLib.Rts.Web.Plugins.Profiler.Models", StringComparison.Ordinal)).ToArray();

cuando el código c # todo está bien y obtengo mis ensamblajes, pero cuando escribo en el archivo t4 no tengo ningún error, pero el conteo de mis ensamblajes es.