C# 返回xml字符串的方法的返回类型应该是什么?

C# 返回xml字符串的方法的返回类型应该是什么?,c#,xml,C#,Xml,我有一个数据访问方法,它从数据库检索xml并返回到业务层。返回类型应该是什么?我应该简单地将它们作为字符串返回吗?将xml从一层返回到另一层时,最佳做法是什么 我将把xml返回给客户机,或者根据客户机请求将其转换为json 我将它作为字符串从数据库中获取,然后使用XElement.Parse(XML_STING)解析为XML。如果您需要解析为JSON,您可以创建一个JSON解析器,而无需更改它从数据库获取JSON的方式。我会将它作为字符串从数据库中获取,然后使用XElement.parse(XM

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


我将把xml返回给客户机,或者根据客户机请求将其转换为json

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

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

我认为这一决定取决于您的方法应该包含哪些用例

当我返回字符串时:

  • 调用方法的代码不会将结果作为XML进行操作,那么为什么要浪费CPU和内存来加载像XmlDocument或XDocument之类的复杂对象呢?只需返回一个字符串

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

当我返回像
XDocument
XmlDocument
这样的XML对象时:

  • 调用方法的代码将以XML的形式操作结果。这包括添加新节点、属性,或者只读取XML中的某些元素或属性

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

更新

我忘了提到“JSON或XML”部分,这取决于客户端请求


显然,如果客户机需要XML,只需将数据作为XML返回;如果客户机需要JSON,只需将数据作为JSON返回

我认为这个决定取决于您的方法应该包含哪些用例

当我返回字符串时:

  • 调用方法的代码不会将结果作为XML进行操作,那么为什么要浪费CPU和内存来加载像XmlDocument或XDocument之类的复杂对象呢?只需返回一个字符串

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

当我返回像
XDocument
XmlDocument
这样的XML对象时:

  • 调用方法的代码将以XML的形式操作结果。这包括添加新节点、属性,或者只读取XML中的某些元素或属性

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

更新

我忘了提到“JSON或XML”部分,这取决于客户端请求


显然,如果客户机需要XML,只需将数据作为XML返回;如果客户机需要JSON,只需将数据作为JSON返回

谢谢。但我的问题是,我应该以字符串的形式从数据访问层返回到业务层,还是以xml对象的形式返回?我想是以字符串的形式返回。然后,如果您的未来需要更改对数据的处理方式,您可以更加灵活?!!如果对格式错误的XML或其他问题的b/c解析失败,至少他仍然拥有数据字符串。如果为数据库获取XML(不是字符串),则在数据检索中会出现错误,并且他根本无法访问数据。谢谢。但我的问题是,我应该以字符串的形式从数据访问层返回到业务层,还是以xml对象的形式返回?我想是以字符串的形式返回。然后,如果您的未来需要更改对数据的处理方式,您可以更加灵活?!!如果对格式错误的XML或其他问题的b/c解析失败,至少他仍然拥有数据字符串。如果为数据库获取XML(不是字符串),则在数据检索中会出现错误,并且他根本无法访问数据。我认为您应该解析XML并返回您自己定义的对象。+1用于返回您自己的类型。听起来您应该有一个IParser、XmlParsers和JsonParser,以及一个IDataReturn、XmlDataRetrun和JsonDataReturn。您可以将IParser传递到data retreival方法中,它可以调用IParser上的Parse()来获取IDataReturn并将其返回到客户端代码。我认为您应该解析XML并返回自己定义的对象。+1用于返回自己的类型。听起来您应该有一个IParser、XmlParsers和JsonParser,以及一个IDataReturn、XmlDataRetrun和JsonDataReturn。您可以将IParser传递到data retreival方法中,它可以调用IParser上的Parse(),以获取IDataReturn并将其返回到客户端代码。