当我从WebService公开.NET System.Data.DataTable
时,如何从Delphi Win32访问它?
答案 0 :(得分:1)
Delphi 7在支持使用Web服务方面存在问题。我不知道它是否有你需要的支持,但这在Delphi 2007及更高版本中要好得多。
Delphi 2007导入器和运行时增强功能have been made available to D7-D2006 users。但是,您需要使用命令行WSDLImp.exe。
答案 1 :(得分:0)
果聚糖,
我不知道有什么方法可以自动完成。当System.Data.DataTable
被序列化为XML时,它的完成方式未经过优化,无法由Delphi本机导入。布鲁斯所说的也是非常真实的; Delphi 7 WSDL非常错误。
每当你有一个可能被.Net不同语言使用的Web服务时,返回内部.Net类并不是一个好习惯,因为在非.Net语言中使用它们并不容易/简单。一种可能的解决方案(我会选择的解决方案)是创建一个可序列化的DTO类(数据传输对象),它的唯一目的是返回您需要的信息。您将数据从DataTable传输到该对象,并通过网络发送。 Delphi 2007 WSDLImp.exe应该可以正常处理它,您将能够更轻松地读取数据。如果你这么做,你甚至可以创建一个自定义类来处理它。