2012-06-22 16 views
1

我認爲我有一個很大的問題。生成代碼與Windows窗體一樣使用.designer.cs

我有一個兩個項目的解決方案。

第一個是UI項目。 算法服務中的第二個。

我需要在UI部分類(fileUI.cs)剛剛編譯之前產生(或覆蓋)。

其主要思想是,當您在de Services部分(fileSA.cs)中編輯類時,只需在使用Services部分類信息更新UI部分(fileUI.cs)中的類之前創建解決方案(fileSA.cs),然後進行編譯。

我認爲它類似的東西VS不與任何一種形式了.Designer.cs(用戶控制...)

我不知道它可能...

非常感謝

+0

請參閱:[T4模板](http://msdn.microsoft.com/en-us/library/bb126445.aspx) – Ani

+0

我覺得這個網站對於任何其他具有相同問題的網站都很有意思。 [鏈接](http://www.codeproject.com/Articles/15728/Write-your-own-Code-Generator-or-Template-Engine-i) – pasapepe

回答

1

您可以在項目中添加自定義的msbuild目標(右鍵單擊項目 - >編輯項目文件)。有關msbuild目標的更多信息,請參閱msdn。您可以將自定義任務作爲此目標的一部分運行。生成代碼的一種方法是使用T4模板。更多信息here作爲構建過程的一部分運行t4模板。 Oleg Sych在T4上有很多詳細的解釋,並且是這方面的權威,所以他的site是一個很好的開始。

+0

非常感謝,很好;) – pasapepe

3

Visual Studio中有一個名爲單文件生成/自定義工具機制,目標正是這種使用情況:(fileSA.cs)(在你的情況fileUI.cs)生成一個文件時,另一個文件已經改變。

請參閱MSDN文章Implementing Single-File Generators瞭解如何編寫這樣的自定義文件生成器。

P.S .:雖然這將是適當的機制,但我認爲它不會跨越項目邊界。

+0

+1在VS中使用擴展點來表示它們的含義。 (但遺憾的是我的COM技能很生疏) – stombeur