我想知道有没有人知道任何基于T4模板的方法拦截系统?
我们开始编写移动应用程序(目前使用的是IOS版的MonoTouch )。我们有一套非常好的DI/IoC核心功能,我想在新平台的开发中利用这一点。由于不支持运行时代码生成Reflection.Emit,我希望使用T4模板来实现动态拦截功能(+ TinyIoC作为解析的容器)。
我们目前正在使用Castle Windsor (并打算在我们的SL和完整的.NET开发中继续这样做),但是所有Windsor特定的绑定都是完全封装的,所以如果给出一个合适的T4解决方案,实现一个使用基于T4的实现而不是Windsor的适配器应该不难。
发布于 2010-12-22 15:30:07
如果我理解正确的话,您希望使用T4动态生成代码(在运行时)。我不知道有任何系统可以做到这一点,但我认为编写这样的东西并不是很难。
您需要做的是指示C# (或任何其他.NET编译器)编译一些代码并生成程序集。完成后,您需要将此程序集加载到AppDomain中。之后,您可以使用该动态加载的程序集中的类型。
T4模板引擎(如果我没记错的话)是Visual Studio的一部分,所以最困难的部分是指示模板引擎生成代码,而您的应用程序可能不需要依赖于Visual Studio,甚至不需要启动它(这将是可怕的)。
如果您不需要T4的全部功能(很可能),您也可以自己编写一些.NET代码,将其安全地保存到一个文件中,并指示C#编译器为您生成一个程序集。
祝好运。
https://stackoverflow.com/questions/4432475
复制相似问题