2011-07-04 74 views
0

我編寫了幾個簡單的Web方法(作爲WCF服務的一部分),它使用一些(更復雜的)類作爲輸入/返回參數。每個由[OperationContract]賦予的Web方法,由[DataContract]賦予的每個數據類,由[DataMethod]賦予的類中的每個數據字段。 在客戶端,我可以通過添加服務引用來調用這些Web方法。 所有的東西都很好,但是當我在客戶端創建上面的一些數據類的實例時,它們的構造函數不會運行。 因爲初始化每個實例有點複雜,每次我都認爲有一些方法可以通過自己的構造函數在客戶端初始化實例。 在此先感謝! Ilan。WCF Web服務和構造函數

+0

澄清你的問題。目前還不清楚你的構造函數是不是運行*? –

+0

服務器端定義的數據類(及其構造函數)(WCF Web服務VS2010解決方案)。但是,Web方法的消耗和創建上述類的實例在客戶端應用程序中(通過在VS中添加「服務參考」)。所以新創建的實例(在客戶端)不會調用任何構造函數;-(() – Ilan

回答

1

服務中的數據合同(包括構造函數)中暴露的方法僅適用於服務應用程序。添加服務引用將僅重新創建數據約定類的數據結構,因爲服務描述無法描述邏輯,邏輯不能被序列化。

所有使用服務引用創建的類都是部分的。您可以創建自己的部分類並添加自己的自定義構造函數,也可以在服務和客戶端之間使用數據契約(但它將共享添加到數據契約類中的所有邏輯,這些邏輯通常是您不需要的)。共享程序集將緊密結合您的客戶和服務。