我刚刚完成创建T4模板,以便为我的ViewModel类自动生成属性实现(请参见以下内容:
Automatic INotifyPropertyChanged Implementation through T4 code generation?
)
目前,我需要让项目在我想要生成属性实现的解决方案中保存“.tt”文件。
例如,解决方案包含三个项目:t4生成、一些带有视图模型的项目、另一个带有视图模型的项目。
然后,当在t4generation中调用t4模板时,它会查看解决方案中的所有项目,并查找所有的ViewModel类,并生成一个包含各个项目中特定ViewModel的属性实现的C文件。
例子:
“someprojectwithviewmodels.someviewmodel.cs”
public partial class SomeViewModel : BaseViewModel
{
private string p_SomeProperty;
}
生成文件“someprojectwithviewmodels.someviewmodel.properties.cs”
public partial class SomeViewModel
{
public string SomeProperty
{
get { ... }
set { ... }
}
}
我现在的问题是,是否有可能创建一个程序集(即“t4generation.dll”),该程序集可以在任何解决方案中引用,从而使宿主解决方案能够以某种方式调用代码生成过程。
例如,我将使用项目“someapplication.exe”、“someclasslibrary.dll”启动一个新的解决方案“somesolution.sln”,在某些应用程序中,我将引用“t4 generation.dll”,在某些应用程序的构建过程中,将调用t4生成。
这有可能吗?