什么生成WebServiceRef Reference.cs文件?

时间:2013-11-21 20:32:40

标签: c# asp.net .net web-services

使用从一个数据库(Visual Fox Pro)读取数据的继承代码并将其存储在SQL Server中。这些是单独的系统,并使用WebService从VFP发送包含数据的XML。

已在两个数据库中添加了一个字段,并且数据已在VFP数据库中播种,但我们遇到了用于同步数据的WebService问题。 WebService似乎正在正确地生成和发送XML(使用新的字段和数据)但是看起来在.NET应用程序上处理它的模型没有正确生成并且对这个新字段什么都不做。

在查看对象浏览器时,其中有一个“OnlineAudienceWebServiceRef”,有一个OnlineAudienceDAL.OnlineAudienceFoxProRow,它似乎包含模型列的描述。我们正在尝试向此对象添加一个新列(以接收新数据),但它似乎是自动生成的。

我的问题是,从根本上说,当Visual Studio链接到WebService时会发生什么?生成了哪些文件,以及它们是如何生成的?

鉴于Web服务正确发送新数据,我希望在点击解决方案资源管理器中的“更新Web引用”后更新Refs,但显然情况并非如此,我想知道发生了什么

有一个'OnlineAudienceDAL.xsd',我们添加了新列,但是我们没有看到这会影响用于读取数据的Object。

根据App.config,应用程序正在使用.NET v4,我们正在使用Visual Studio 2010。

我不熟悉.NET和这里发生的许多事情,并希望指向一个好的方向。对不起,如果这令人困惑,请告诉我我可能会遗漏哪些信息,如果有什么不清楚的话。

感谢您的帮助。

1 个答案:

答案 0 :(得分:9)

这是Visual Studio用于手动生成Web服务的命令行实用程序的示例,如果您在本地文件夹中具有WSDL( 或XSD )文件。 (WSDL是Web服务定义文件)

在我的情况下这是一个批处理文件...并且还生成一个VB文件,但很容易切换到C#我假设使用最后一个命令行参数。

cd C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin
 wsdl.exe "c:\development\WebServiceClients\CORE_Webservice_Interface_WS.wsdl" /fields /n:Telus /out:"c:\Development\output\WebServiceClients\referencefile.vb" /l:VB

WSDL.EXE 是此核心...以下是选项...

c:\ Program Files(x86)\ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin> wsdl /? Microsoft(R)Web服务描述语言实用程序 [Microsoft(R).NET Framework,版本2.0.50727.42] 版权所有(C)Microsoft Corporation。保留所有权利。

wsdl.exe -     用于为xml Web服务客户端和xml Web服务生成代码的实用程序     使用 WSDL 合同文件中的ASP.NET, XSD 模式和 .discomap     发现文件。此工具可与disco.exe结合使用。

wsdl.exe ...

  • 选项 -

-     WSDL合同的URL或路径,XSD架构或.discomap文档。

/ NOLOGO     禁止横幅。

/语言:     用于生成的代理类的语言。从'CS'中选择,     'VB','JS','VJS','CPP'或为班级提供完全限定的名称     实现System.CodeDom.Compiler.CodeDomProvider。默认     语言是'CS'(CSharp)。简称是'/ l:'。

/ sharetypes     打开类型共享功能。此功能创建一个代码文件     不同之间共享的相同类型的单一类型定义     服务(名称空间,名称和电线签名必须相同)。     使用http:// URL作为命令行参数引用服务     或者为本地文件创建一个discomap文档。

/冗长     指定/ sharetypes开关时显示额外信息。     简称是'/ v'。

/字段     生成字段而不是属性。简称是'/ f'。

/顺序     在粒子成员上生成显式订单标识符。

/ enableDataBinding     在所有生成的类型上实现INotifyPropertyChanged接口     启用数据绑定。简称是'/ edb'。

/名称空间:     生成的代理或模板的命名空间。默认命名空间     是全局命名空间。简称是'/ n:'。

/出:     生成的代理代码的文件名或目录路径。默认     filename是从服务名称派生的。简称是'/ o:'。

/协议:     覆盖要实现的默认协议。从'SOAP'中选择,     'SOAP12','HttpGet','HttpPost'。

/用户名: /密码: /域:     连接到服务器时使用的凭据     要求认证。简短形式是'/ u:','/ p:'和'/ d:'。

/代理:     用于http请求的代理服务器的URL。     默认设置是使用系统代理设置。

/的proxyusername: /对proxyPassword: / proxyDomain行:     连接到代理服务器时使用的凭据     要求认证。简短形式是'/ pu:','/ pp:'和'/ pd:'。

/ appsettingurlkey:     用于在代码生成中读取默认值的配置键     Url属性的值。默认设置是不从配置中读取     文件。简短形式是'/ urlkey:'。

/ appsettingbaseurl:     计算url片段时使用的基本URL。该     还必须指定appsettingurlkey选项。网址片段是     从appsettingbaseurl计算相对URL的结果     到WSDL文档中的url。简称是'/ baseurl:'。

/ parsableerrors     以与编译器报告的格式类似的格式打印错误。

  • 高级 -

/服务器     服务器开关已被弃用。请改用/ serverInterface。     使用生成xml Web服务实现的抽象类     ASP.NET基于合同。默认是生成客户端代理     类。

/ serverInterface     为ASP.Net的服务器端实现生成接口     网络服务。为wsdl中的每个绑定生成一个接口     文件(多个)。单独的wsdl实现了wsdl契约(类     实现接口不应包括以下任何一个     关于类方法:Web服务属性或序列化     更改wsdl合约的属性)。简称是'/ si'。

/参数:     从指定的xml文件中读取命令行选项。这可以让你     指定命令行中不可用的选项,例如选择     生成哪种类型的异步编程模型。有关细节,     请参阅工具文档。简称是'/ par:'。