2015-06-30 213 views
0

我正在研究一些代碼生成的東西 - 使用T4 RuntimTemplates。 我確實有多個模板,並將它們「存儲」在IEnumberable列表中。IEnumerable T4模板

我的問題是,我想通過使用.WriteAllText()這是一個虛擬的方法遍歷模板。

我想,這可能是創建具有.WriteAllText(定義接口),一個在部分類中聲明它的最簡單的方法..

public partial class SolutionTemplateRunTime :  SolutionTemplateRunTimeBase, ICodegenerationTemplate 
{ 

這工作,直到我存儲或更新模板;-)。模板的部分類(cs後面的代碼)被更新並且接口聲明消失。

public partial class SolutionTemplateRunTime :  SolutionTemplateRunTimeBase 
{ 

有沒有解決方案來處理?它的那種惱人的,每當我更新模板.. 希望你能幫助重新聲明接口..

格爾茨壹岐

+1

將'WriteAllText'方法添加到'SolutionTemplateRunTimeBase' – dotctor

+0

SolutionTemplateRunTimeBase得到重新創建太.. ..--( –

回答

3

我認爲你缺少的partial點 - 的想法是,正是一種您想要做的更改是在單獨的文件中完成的 - 不是生成的。

只需創建一個新的文件cs,像這樣的聲明:

public partial class SolutionTemplateRunTime : ICodegenerationTemplate 
{ 
    ... 
} 

當編譯代碼時,編譯器將合併同一類的所有分部聲明 - 這包括任何接口的類實現等。

+0

Gosh ^^ ..對不起..是啊,你的權利..謝謝^^ –