2012-02-09 64 views
3

我正在着手编写C#中的Web服务,该服务将由可能需要JSON或XML的客户端使用。JSON和XML的单独Web服务?

我明白了,你是在你的WebMethod返回简单的东西像这样的人对象的.Net能做到这一点非常好,只要

class person 
{ 
    string name 
    string age 
} 

此Web服务的目的是充当数据库之间的层客户端和我将通过仅包含一个表的存储过程获取数据。

我试着简单地返回一个数据表,但是这对JSON并不会很好(如果你使用application/json作为循环引用问题)。在这种情况下,最好的解决方案是创建可映射数据的可序列化类吗?我问的原因是这会非常麻烦。

或者,我可以为每个创建一个单独的Web服务,并编写一些代码来有效地将数据表列名映射到字段以迎合JSON并返回字符串。

+0

如果您可以控制通信的双方,WCF数据服务可能会有所帮助。我想我记得看到它支持JSON和XML。尽管如此,你将失去对消息格式的控制。 – 2012-02-09 01:25:02

回答

1

确实最好的做法是创建可以传回客户端的单独的简单UI对象。尽管很痛苦,但这会使您的前端服务代码与数据层解耦,并允许您更改数据而不影响客户端使用的对象。

然而,您不需要创建单独的Web服务。我相信您可以为同一服务创建2个不同的端点,并根据客户端使用的地址(端点)将其配置为返回xml/json。