2012-07-12 110 views
1

我有数据访问方法,从数据库中检索xml并返回到业务层。什么应该是返回类型?我应该简单地将它们作为字符串返回吗?将xml从一个图层返回到另一个图层时的最佳做法是什么?什么应该是返回xml字符串的方法的返回类型?

我会将xml返回给客户端,或者可能会根据客户端请求将它们转换为json。

+1

我认为你应该解析XML并返回你自己定义的对象。 – banging 2012-07-12 17:32:19

+2

+1用于返回自己的类型。听起来你应该有一个IParser,XmlParsers和JsonParser,以及一个IDataReturn,XmlDataRetrun和JsonDataReturn。您可以将IParser传递到您的数据恢复方法中,并且可以调用IParser上的Parse()以获取IDataReturn并将其返回给客户端代码。 – 2012-07-12 17:40:13

+0

@mo我喜欢你的想法。 – user1186065 2012-07-12 17:56:26

回答

1

我认为这个决定取决于哪些用例应该覆盖你的方法。

当我返回一个字符串:

  • 代码调用你的方法是不会操作结果作为XML,那么为什么浪费了CPU和内存加载一个复杂的对象像XmlDocument的或的XDocument,管他呢?只是返回一个字符串!

  • 返回的XML是一个序列化的对象。你将把这个XML字符串解析成一个实际的.NET对象。

当我回到像XDocumentXmlDocument的XML对象:

  • 代码调用你的方法是要操纵的结果作为XML。这包括添加新的节点,属性,或只是读取XML中的一些元素或属性。

  • 调用方法的代码使用一些.NET基类库或需要XML对象作为参数的第三方库。

UPDATE

我忘了提及这取决于客户端的请求 “JSON或XML” 的一部分。

显然,如果您的客户端需要XML,只需将您的数据作为XML返回,并且如果您的客户端需要JSON,只需将您的数据作为JSON返回即可。

0

我会从数据库中获取它作为字符串,然后使用XElement.Parse(XML_STING)解析为XML; 。如果您需要解析为JSON,则可以使用JSON解析器而不更改从数据库获取它的方式。

+0

谢谢。但我的问题是,我应该返回作为一个字符串从数据访问层业务层或作为一个XML对象? – user1186065 2012-07-12 17:31:21

+0

作为一个字符串,我认为。那么如果将来需要改变你需要处理的数据,你可以更灵活。 – 2012-07-12 17:32:32

+0

如果他应该返回String,那么为什么'XElement.Parse(XML_STING);'?!! – banging 2012-07-12 17:33:26

相关问题