這是我正在處理的一個有點微妙的問題,並希望得到任何幫助。使用Silverlight WCF服務中的.NET 2.0類庫,公共屬性保持未暴露
我們有我們的項目在生產模式,用.NET 2.0構建。我們最近開發了2.0解決方案外部的Silverlight應用程序,並且它與WCF服務「交談」。此服務使用我們從2.0解決方案發布文件夾中複製的DLL,以便從我們的原始解決方案中訪問功能。
WCF服務正在公開從我們的2.0解決方案中產生的幾種方法和對象。顯然,它在內部使用[DataContract]和[DataMember],這些在我們的原始解決方案中不可用(因爲它是.NET 2.0,此時不能升級到3.5)。幸運的是,WCF能夠將我們的可序列化對象視爲它們被定義爲契約,但出於某種奇怪的原因,只有成員變量(即使定義爲私有!)正在被序列化;屬性,甚至可設置和公開從未序列化。
我們需要暴露的對象類有它們定義的[Serializable()]。我環顧四周,無法找到一個很好的解決方案/解釋。它可能與.NET 3.0/3.5如何「看到」我的2.0對象(它假定[DataMember]只在變量上而從不在屬性上)有關。
我的問題主要是如何只公開公有屬性,而不是私有變量?
在此先感謝您對此的任何見解。
Itamar。