2010-06-04 43 views
1

我剛剛完成創建T4模板以自動生成ViewModel類的屬性實現(請參閱:Automatic INotifyPropertyChanged Implementation through T4 code generation?)。裝配T4模板以用於其他解決方案?

目前我需要在解決方案中保留「.tt」文件,我想要生成屬性實現。

因此,解決方案例如包含三個項目:T4Generation,SomeProjectWithViewModels,AnotherProjectWithViewModels。

然後在T4Generation調用T4-模板時,它看起來在所有的項目中的溶液,並發現所有的視圖模型類,並且產生包含屬性實現的用於在相應的項目中的具體視圖模型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」),使主機解決方案能夠調用代碼生成過程不知何故。

例如,我會開始一個新的解決方案「SomeSolution.sln」與項目「SomeApplication.exe」,「SomeClassLibrary.dll」,在SomeApplication我會參考「T4Generation.dll」,並在SomeApplication的構建過程中T4代將被調用。

這可能嗎?

回答

1

您是否使用Visual Studio 2010?如果是這樣,我建議使用「預處理模板」來處理你想要做的事情。預處理過的模板會生成一個生成代碼的生成器類,而不是直接生成代碼。因此,使用T4模板生成的這些生成器類,可以生成T4Generation.EXE控制檯應用程序,該應用程序將從項目中調用爲預編譯命令。傳遞給項目的路徑,發電機應該完成剩下的工作。這將從任何項目重新使用。

+0

你能提供一些鏈接嗎? – 2010-07-12 01:34:53

+0

當然......不幸的是,當VS2010處於測試階段時,很多人都在爲此撰寫有關這方面的文章,並且自那以後沒有多少新聞報道。但是,一旦你自己完成了一件事,就不難理解。 以下是我學習時的一些del.icio.us鏈接: http://msdn.microsoft.com/en-us/library/ee844259.aspx http://karlshifflett.wordpress .com/2009/10/30/t4-preprocessed-text-templates-in-visual-studio-2010/ http://www.olegsych.com/2009/09/t4-preprocessed-text-templates/ – mattmc3 2010-07-12 01:55:33