【发布时间】:2009-07-20 13:22:43
【问题描述】:
使用T4代码生成,是否可以访问当前项目中定义的类型?
例如,如果我有一个接口并且我想将其实现委托给另一个类,即
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();
}
}
我想通过代码生成自动化SomeClass 中的呼叫转移;这可能吗?
【问题讨论】:
-
问问自己,如果不是生成的代码,你会怎么做。然后采用该解决方案并让模板生成它。
-
@John Saunders:这条评论毫无用处,不是吗?
-
我认为不是。也许你知道如何做到这一点,但并不是每个人都了解从可行的东西开始,然后在模板中对其进行参数化的过程。
-
@John:我不知道,也许你是对的,并不是每个人都明白。无论如何,这里的重点是如何访问项目中的类型定义,而不是如何参数化现有的 sn-p...
-
有人用 T4 回答过这个问题吗?因为我不需要寻找其他解决方案,只需根据我的需要通过反射进行迭代。