2012-01-23 48 views
2

我即將編寫一個小型的C#WPF服務,它引用XML文件進行配置。我已經編寫了WPF接口應用程序,它創建和維護服務將讀取的XML。很多代碼都進入了接口使用的類,我想重用它們,但只維護一個版本的代碼。Windows服務和配置應用程序在Visual Studio中的最佳實踐

在Visual Studio中維護兩個「Main」入口點的最佳做法是什麼?一個用於應用程序,另一個用於服務。是否可以混合使用WPF表單和服務項目類型?

如何在將服務註冊爲Windows服務之前測試並運行服務?

回答

1

如果我得到這個正確的你有一個UI項目,你想重新使用單獨的Windows服務項目中的代碼。

通常,這是由公共的共享代碼移動到一個單獨的項目完成的,稱爲共享核心。這是你需要進行單元測試的。最後,您將UI和Windows服務項目的引用添加到此共享庫。

 
/root 
    ... 
    /src 
    /app 
     /Core 
     /Presentation (ref to Core) 
     /Service  (ref to Core) 
    /test 
     /Core.Test  (ref to Core) 
+0

這就是我正在尋找的。我會試試 – Damo

0

修改您的主要所以它有調試配置不同的行爲,並讓您TestApp調用到的MyService的公共部分:

static void Main() 
{ 
    #if DEBUG 
     TestApp testApp = new TestApp(); 
     testApp.Run(); 
    #else 
     ServiceBase[] ServicesToRun; 
     ServicesToRun = new ServiceBase[] 
     { 
      new MyService() 
     }; 
     ServiceBase.Run(ServicesToRun); 
    #endif 
} 

然後你就可以通過TestApp駕駛你的服務的邏輯在調試器中無需註冊實際服務。

+0

謝謝,這將有助於服務調試 – Damo

相關問題