2013-05-01 39 views
0

我需要寫一個網站內容管理系統,該系統利用動態實體框架的DbContext產生。作爲一個輸入,我得到了一個自定義數據類型聲明(在xml中),我的C#代碼知道如何解析。在輸出中,我需要獲取DbContext的代碼,該代碼將提供一個工具來將提供的數據類型實例作爲DbSet存儲在數據庫中。在Visual Studio的一個插件的形式>的.cs發電機 -動態的DbContext代

我可以看到有.TT。我肯定可以創建代碼,從我的自定義聲明中生成一個基於xml的(我認爲是).tt模板,然後爲這個.tt生成一個.cs DbContext。但是,如何從代碼手動運行.tt - > .cs轉換?

回答

0

通常T4模板以在Visual Studio中的設計轉化時間。如果你想在運行時使用T4模板,改變.TT的工程項目,以「TextTemplatingFilePreprocessor」中的「自定義工具」屬性的值。

這將使Visual Studio中,從可以在運行時,在這裏你可以向它傳遞參數(例如你的XML類型聲明)被實例化你的T4模板創建C#類。調用「TransformText()」將返回包含數據類的T4模板的實際輸出代碼。

爲了在運行時使用這些類也一樣,你就需要編譯輸出代碼在內存中。