2013-03-09 88 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)的问题。