我們使用WCF在客戶端和服務器應用程序之間進行通信。客戶端應用程序有許多功能需要與服務器通信 - 我們選擇在多個類中實現此功能(分離責任)WCF服務返回另一個服務(服務工廠?)
當時,我們正在爲每個對象創建新的WCF端點和服務合同 - 開發票,會計,內容管理等。這會在客戶端和服務器上導致大量的端點配置(當進入測試和生產平臺時可能存在錯誤配置問題)。
我想知道我是否可以定義一個可以提供多個服務聯繫實現的單個WCF端點。然後我們的配置文件將包含單個端點(到服務工廠),並且我可以通過指定我感興趣的服務的接口來請求不同的服務。
例如,
using (IServiceClientFactory serviceClientFactory = new RealProxyServiceClientFactory())
{
// This is normal WCF proxy object creation.
IServiceFactory serviceFactory = serviceClientFactory.CreateInstance<IServiceFactory>("");
// This is what we would like to do
IInvoiceService invoiceService = serviceFactory.getService(typeof(IInvoiceService));
invoiceService.executeOperation(data);
}
線索是每客戶端/服務器對的單個端點的配置,而不是每個服務接觸的端點配置我想作用。
這可能嗎?
謝謝你的回覆。序列化服務不是解決方案,服務上的方法需要在服務器上處理。參數需要是可序列化的,但方法本身必須在服務器上執行。我用一個SessionMode找到了一個關於ServiceContracts的文檔,現在我正在嘗試。 – Thies 2009-09-17 08:32:58
我從來沒有建議序列化服務。 Xml序列化是WCF的工作原理。它負責把你的對象和翻譯成Xml和其他方式。 我的答覆的重點是向您解釋,包裝您的服務請求和回覆可能很好地解決了您的問題。 – 2009-09-18 08:08:55