WCF服务的对象设计

本文关键字:对象 服务 WCF | 更新日期: 2023-09-27 18:03:10

我正在编写一个小的WCF服务来返回基于GPS数据的地址。这只是我自己的一个学习应用。

目前,我的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列表时,他们只看到我打算他们使用的?

WCF服务的对象设计

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

此外,在GPSdata对象中隐藏属性(lat、long)的问题可以通过使用[Ignore Properties]标签来实现。