C# 返回xml字符串的方法的返回类型应该是什么?
我有一个数据访问方法,它从数据库检索xml并返回到业务层。返回类型应该是什么?我应该简单地将它们作为字符串返回吗?将xml从一层返回到另一层时,最佳做法是什么C# 返回xml字符串的方法的返回类型应该是什么?,c#,xml,C#,Xml,我有一个数据访问方法,它从数据库检索xml并返回到业务层。返回类型应该是什么?我应该简单地将它们作为字符串返回吗?将xml从一层返回到另一层时,最佳做法是什么 我将把xml返回给客户机,或者根据客户机请求将其转换为json 我将它作为字符串从数据库中获取,然后使用XElement.Parse(XML_STING)解析为XML。如果您需要解析为JSON,您可以创建一个JSON解析器,而无需更改它从数据库获取JSON的方式。我会将它作为字符串从数据库中获取,然后使用XElement.parse(XM
我将把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基类库或第三方库
显然,如果客户机需要XML,只需将数据作为XML返回;如果客户机需要JSON,只需将数据作为JSON返回 我认为这个决定取决于您的方法应该包含哪些用例 当我返回字符串时:
- 调用方法的代码不会将结果作为XML进行操作,那么为什么要浪费CPU和内存来加载像XmlDocument或XDocument之类的复杂对象呢?只需返回一个字符串
- 返回的XML是一个序列化对象。您将把这个XML字符串解析成一个实际的.NET对象
XDocument
或XmlDocument
这样的XML对象时:
- 调用方法的代码将以XML的形式操作结果。这包括添加新节点、属性,或者只读取XML中的某些元素或属性
- 调用方法的代码使用一些需要XML对象作为参数的.NET基类库或第三方库
显然,如果客户机需要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并将其返回到客户端代码。