我目前正試圖讓我的頭部圍繞ASP.NET開發環境的WCF服務,並且我相信我做得很好,除了一件讓我難以置信的事情。如何獲取我的WCF服務構造函數?
基本上,我有一個WCF服務設置(讓我們的默認,與添加的構造函數):
public class MyService : IMyService
{
public MyService() { /* blah */ }
public DoWork() { /* blah */ }
}
的IMyService
接口,定義爲[OperationContract]
的DoWork()
方法,因爲它應該。
所以我在另一個項目(比如說[單元]測試項目)中通過在VS2010 UI上添加了服務參考。這會創建一個MyServiceClient
的引用,它會公開我的WCF服務方法,因爲它應該如此。
然而,當我做這在我的測試項目:
ServiceReference.IMyService service;
service = new ServiceReference.MyServiceClient();
...的MyService()
構造函數不被調用,主要是因爲我在實例化一個MyServiceClient
,不是MyService
本身。
我該如何着手調用構造函數?我打算將它用於初始化目的(例如,可能在分層實現中抓取一個圖層?)。
所以基本上,你是說,而不是_Add服務參考_,我應該去一個良好的醇'__參考_服務項目,然後直接訪問服務類? – 2010-11-02 15:45:27
不,添加服務引用是正確的...但是服務類中的構造函數不會作爲本地代碼的一部分運行 - 當您調用服務時,它會在IIS服務器上運行。它會*在您的任何服務方法運行之前被調用,而不是在您創建客戶端對象時調用。 – 2010-11-02 16:18:03
Gotcha。當我意識到我尚未在我的測試項目中實際調用任何服務方法時,正在使用您的解決方案。 :D謝謝! – 2010-11-03 07:25:47