2013-03-09 90 views
0

我正在寫一個小的WCF服務來返回基於GPS數據的地址。這只是我自己的學習應用程序。WCF服務的對象設計

此刻,我的WCF公開了一個名爲GpsData的對象類型,它具有Lat和Long。它的裝飾爲[DataContract]

然後,我有一個方法,getLocationByGpsData (GpsData);

一個項目我最近的工作,他們會做不同的。他們有一個叫LocationByGpsDataRequest的對象,它包含一個GpsData對象。它會返回一個'LocationByGpsDataReply對象,它具有GpsData對象,以及一些額外的地址相關數據。

所以:

LocationByGpsDataReply reply = getLocationByGpsData(new LocationByGpsDataRequest { Lat=...; long=...' }; 

首先,是他們的模型更好?也許它更具可讀性?

其次,我真的不想暴露自己的GpsData對象。它始終包含在父類中。

var latitude = reply.GpsData.Latitude; 

有沒有辦法「隱藏」 GpsData是一個獨立的對象,這樣,當客戶看到我的WCF服務公開的ObjectTypes名單,他們只看到我打算在他們使用的呢?希望是有道理的...

+0

所以你只想暴露Lat和Long而不是整個GpsData對象? – khlr 2013-03-09 13:14:08

回答

0

是的,我同意他們的方法更好。

此外,通過使用[忽略屬性]標籤可以隱藏GPSdata對象內屬性(lat,long)的問題。