【发布时间】:2013-02-16 07:42:28
【问题描述】:
我在 T4 上使用 TextTemplatingFilePreprocessor 阅读的文章展示了如何动态生成成为项目一部分并与项目一起编译的代码。
是否可以使用 T4 生成在运行时编译、输出到 dll 并加载和执行的代码,并且所述代码可以访问与 dll 相关的通常可见性功能?
如果是这样,请你举个例子。
我实际上是在尝试做与使用 IL 生成动态 dll 相同的事情,而不是使用 C#。
编辑
我需要这个的具体情况很简单。我正在编写一个将消息路由到服务的消息路由器。服务可以是本地的或远程的。声明性脚本被编译成 C#。动态部分是“此服务是本地的还是远程的?”。输出 C# 相应更改。本地/远程的路由风格不同,因此具有动态性。
这是我需要的一个例子。
【问题讨论】:
-
我不确定您是否需要为此生成代码。你不能有两种类型:一种用于本地服务,一种用于远程,并在运行时选择使用哪一种?
-
当然,即使是连接正确委托的简单 if 语句。我只是将其用作 a 案例的简单示例,其中动态将受益。我还有更复杂的案例,我还没有完全规划出来。
标签: c# .net code-generation t4