我有从数据库中检索 xml 并返回业务层的数据访问方法。返回类型应该是什么?我应该简单地将它们作为字符串返回吗?将 xml 从一层返回到另一层时的最佳实践是什么?
我会将该 xml 返回给客户端,或者可能会根据客户端请求将它们转换为 json。
我认为这个决定取决于哪些用例应该涵盖您的方法。
当我返回一个字符串时:
调用您的方法的代码不会将结果作为 XML 进行操作,那么为什么要浪费 CPU 和内存来加载像 XmlDocument 或 XDocument 之类的复杂对象呢?只返回一个字符串!
返回的 XML 是一个序列化的对象。您将要将此 XML 字符串解析为实际的 .NET 对象。
当我返回一个像XDocument
or的 XML 对象时XmlDocument
:
调用您的方法的代码会将结果作为 XML 进行操作。这包括添加新节点、属性,或者只是读取 XML 中的一些元素或属性。
调用您的方法的代码使用一些需要 XML 对象作为参数的 .NET 基类库或第三方库。
更新
我忘了根据客户请求提及“JSON 或 XML”的部分。
显然,如果您的客户端需要 XML,只需将您的数据返回为 XML,如果您的客户端需要 JSON,只需将您的数据返回为 JSON。
我会以字符串的形式从数据库中获取它,然后使用 XElement.Parse(XML_STING); 解析为 XML;. 如果您需要解析为 JSON,您可以使用 JSON 解析器而不更改它从数据库获取它的方式。