tutorial texto template puede plantilla generate esta equipo ejecucion dañar code c# .net t4

c# - texto - t4 text template



Generación de código T4: tipos de acceso en el proyecto actual (1)

Si bien esto no resuelve los problemas de bloqueo (aunque he oído que lo hace VS2010), puede intentar copiar el archivo DLL en una ubicación temporal y simplemente usar ese ensamblaje copiado.

<#@ template debug="false" hostspecific="false" language="C#" #> <#@ output extension=".txt" #> <#@ import namespace="System.Reflection" #> <#@ import namespace="System.IO" #> <# var newFileName = System.IO.Path.GetTempFileName(); System.IO.File.Copy(@"C:/Development/CustomAssembly.dll",newFileName,true); var assembly = Assembly.LoadFrom(newFileName); var type = assembly.GetType("CustomAssembly.DummyClass"); #> <#=newFileName#> <#=type#>

Mediante la generación de código T4, ¿es posible acceder a los tipos definidos en el proyecto actual?

Por ejemplo, si tengo una interfaz y quiero delegar su implementación a otra clase, es decir,

interface IDoSomething { public void do_something(); } class DoSomethingImpl : IDoSomething { public void do_something() { // implementation... } } class SomeClass : IDoSomething { IDoSomething m_doSomething = new DoSomethingImpl(); // forward calls to impl object public void do_something() { m_doSomething.do_something(); } }

Me gustaría automatizar el reenvío de SomeClass en SomeClass con generación de código; ¿es posible?