2015-05-24 182 views
0

我有一個GUI和一個Windows服務需要共享model(POCO類)。 我該怎麼做?兩個C#項目共享代碼

我真的看到了將一個項目添加到另一個項目作爲參考的選項,因此所有public類都可以共享。

  • 這是一個不錯的選擇嗎?
  • 哪個項目應該包含這些類?
  • 製作可執行文件時幕後會發生什麼?
+2

您已經完成了一半:只需創建第三個「類庫」類型的項目,移動您想要共享的所有常見POCO類,並讓您的GUI和服務項目引用此類庫項目。 – Filburt

+0

謝謝@Filburt! – Elimination

回答

5

一般如下您將創建一個項目結構:

  • MyProject.DataModel
  • MyProject.Gui
  • MyProject.WindowsService

GUI和WindowsService既可有對DataModel項目的引用,在這種情況下,在編譯時立即會對DataModel進行更改。

當您編譯爲EXE時,您將在同一目錄中有DLL,其中一個將是MyProject.DataModel.dll。 EXE將在運行時加載該DLL,以便提供對這些類的訪問。

+0

謝謝Martin – Elimination

+0

非常歡迎您! :) –

2

如果兩個項目共享相同的代碼,那麼做一件好事就是使用共享代碼來引用第三個項目。所以基本上用你的poco創建一個新的「模型」項目。

爲什麼將一個項目添加到另一個作爲參考不好? GUI可能不需要整個項目Windows服務來操作。反過來也是如此。 Windows服務不需要GUI。