C# 如何在我的WCF服务中公开数据

C# 如何在我的WCF服务中公开数据,c#,xml,wcf,soa,C#,Xml,Wcf,Soa,这是个有点傻的问题。但是 我正在公开一个街道位置的服务。到目前为止,我一直在使用实体框架获取数据,并使用XElement将数据解析为XML。然后在我的服务层中,我返回要在我的服务中公开的元素 这是公开数据的正确方式吗?既然WCF使用的是数据契约,而数据契约反过来又序列化为XML,那么自己将其转换为XML是一种不好的做法吗 我也可以返回一个列表来完成同样的事情。但是,这意味着我无法控制XML的外观 我可以遵循什么样的最佳实践,在哪里可以阅读一些关于最佳实践的好信息。我一直在这个网站上搜索,但是说到

这是个有点傻的问题。但是

我正在公开一个街道位置的服务。到目前为止,我一直在使用实体框架获取数据,并使用XElement将数据解析为XML。然后在我的服务层中,我返回要在我的服务中公开的元素

这是公开数据的正确方式吗?既然WCF使用的是数据契约,而数据契约反过来又序列化为XML,那么自己将其转换为XML是一种不好的做法吗

我也可以返回一个列表来完成同样的事情。但是,这意味着我无法控制XML的外观

我可以遵循什么样的最佳实践,在哪里可以阅读一些关于最佳实践的好信息。我一直在这个网站上搜索,但是说到最佳实践,有很多不同的主题


谢谢

我会用。。。你不必自己序列化它。。。数据契约是(imho)更好的方法。

交换XML并不是一种坏做法,但是,我认为交换类型安全的数据会让您受益更多。只需创建类并用
DataContract
DataMember
属性来修饰它们。WCF将负责在您的服务和客户端之间序列化它们。这样,您将在客户端代码中拥有具有类型安全属性的对象,并且这些数据可能更易于使用。

既然我返回了一个“Street”集合,为什么我需要用数据协定装饰我的“Street”类?DataContract属性将您的类型标记为DataContractSerializer的可序列化类型(这就是WCF用来将数据序列化为XML的方法)。请看,如果我想以某种方式格式化XML,该怎么办?如果我不自己创建XML,该怎么办?