Reflection with T4 get assemblies

c#, reflection, t4

Solution

In a T4 template the executing assembly is not yours but one from the T4 engine.

To access types from your assemblies, you have to perform the following steps:

Add a reference to your assembly to the template. Put that at the top of it:

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

Import the namespace of your assembly. Put that somewhere below the previous line:

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

To access the types in this assembly, pick one of them and get the assembly from it:

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();

Problem

I want to get all of class in the specific assembly this is my code ``` var assembly=Assembly.GetExecutingAssembly(); var assemblies = assembly.GetTypes().Where(t => String.Equals(t.Namespace, "RepoLib.Rts.Web.Plugins.Profiler.Models", StringComparison.Ordinal)).ToArray(); ``` when c# code all thing is ok and i get my assemblies but when write in `t4` file i dont have any error but my assemblies count is.

Original source

Related problems