如何使用带有附件的 SOAP 在 ASMX Web 服务中创建和返回 CSV,而不是 XML

本文关键字:返回 创建 CSV XML 服务 Web 何使用 ASMX SOAP | 更新日期: 2023-09-27 17:57:09

假设我有一个这样的类:

class Person
{
    public string name;
    public string address;
    public string city;
    public string state;
    public string zip;
}

我正在对数据库执行数据下降:

Select Name, Address, City, State, Zip
FROM Persons_Tbl

我通过SqlDataReader将数据存储在Person类中。

通常,Web 服务将返回数据,并且数据将采用 XML 格式。 但是,我想将其返回为 CSV,而不是 XML。 我意识到Web服务返回XML或JSON。 但是有一种叫做带有附件的 SOAP 的东西。 附件可以是CSV吗,如果是,我该怎么做?

如何使用带有附件的 SOAP 在 ASMX Web 服务中创建和返回 CSV,而不是 XML

SOAP with Attachments (SwA) 从未标准化:

SwA 是一个 W3C 注释。它作为提案提交,但未被W3C采用。相反,MTOM 是用于处理 SOAP 消息中的二进制数据的 W3C 建议。

无论如何,传统的ASMX Web服务技术既不支持SwA也不支持MTOM。有什么原因不能使用 WCF 吗?它确实支持 MTOM。

您是在寻找 Web 服务调用来发送文件,还是只关心输出是 CSV?

如果只需要 CSV 格式的输出,则可以将 CSV 作为字符串发送,然后将其保存到使用 Web 服务的应用程序中的文件中:

string csvFile = webService.GetCSV()
File.WriteAllText(filePath, csvFile );

请注意,它仍将返回 XML,但您的数据(字符串)将采用 CSV 格式。您必须创建一些帮助程序方法来获取对象并将其转换为 CSV 格式。

还有一些其他实现基于您计划如何使用该 Web 服务。