locked
关于 c# 使用 web service的 问题 RRS feed

  • 问题

  • 我 以前用java  使用axis 用 wsdl 生成 java code .. 然后 调用(包括 CRUD操作)
     现在 我需要使用c#  发现 .net 提供了一个 wsdl.exe 的工具 似乎也可以 提供 生成代码的 工作.. 我使用了 命令   wsdl /si ###.wsdl
     生成后 我发觉 他出了 生成了 接口 还大量生成了 partial 的class  来描述 wsdl 里面的 操作接口 或者 属性...  
     现在有 问题 如下 
    1.我对 c# 不是很了解   不知道 如何 重写 或者 扩展 partial 类
    2.java中 我使用了 生成Session... 包在 我要发送的 消息外面..  不知道 c# 怎么包这么一层
    3. 可不可以 给个 完整的例子 让我看看  c# 中 是如何 使用的 ..  谢谢
    2009年8月28日 3:30

答案

  • Hi,
      .NET 平台在使用Web服务的时候,确实有很多便利的工具,你说的 wsdl.exe 其实就是根据WSDL文件来生成本地客户端代理等一系列文件的工具。
       partial 类其实就是部分类,这个.NET里的一个概念,就是允许你把类定义为一个多个部分类,编译器会自动查找这些文件,然后合并编译。
      你修改任何一个部分类文件都可以,就等于修改了这个类。
     
      另外客户端使用wsdl.exe 工具本地的生成的文件和你添加Web服务引用方式生成的类似,这个取决于你Web服务的WSDL,
      Visual Studio做了的很好了,你在项目里直接添加服务引用就会给你生成很好的客户端需要的所有文件。
      你直接实例化客户端代理类,然后调用Web服务的方法就可以了。

      例子网上很多,你也可以自己建立一个项目,右键添加服务引用,输入你Web服务的地址即可。

     
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    • 已标记为答案 tobyqiu 2009年9月2日 4:39
    2009年9月1日 5:12

全部回复

  • Hi,
      .NET 平台在使用Web服务的时候,确实有很多便利的工具,你说的 wsdl.exe 其实就是根据WSDL文件来生成本地客户端代理等一系列文件的工具。
       partial 类其实就是部分类,这个.NET里的一个概念,就是允许你把类定义为一个多个部分类,编译器会自动查找这些文件,然后合并编译。
      你修改任何一个部分类文件都可以,就等于修改了这个类。
     
      另外客户端使用wsdl.exe 工具本地的生成的文件和你添加Web服务引用方式生成的类似,这个取决于你Web服务的WSDL,
      Visual Studio做了的很好了,你在项目里直接添加服务引用就会给你生成很好的客户端需要的所有文件。
      你直接实例化客户端代理类,然后调用Web服务的方法就可以了。

      例子网上很多,你也可以自己建立一个项目,右键添加服务引用,输入你Web服务的地址即可。

     
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    • 已标记为答案 tobyqiu 2009年9月2日 4:39
    2009年9月1日 5:12
  • 1  直接在别的地方写一个同名 同命名空间的类就可以了

    2 请在生成的代码中找cookiecontainer

    3 你直接建立一个  c#的工程  添加 web/服务器引用   打开wsdl文件就可以自动生成你说的文件了。   
    恭喜自己5星用户达成
    2009年9月1日 5:26
  • 的确 可能在国内的web service 可以使用 添加引用 web sevice 的方法较多..但是 我使用的是 oracle的 crm on demand. 他可能没有 开放  你所说的 添加web 引用的 接口.. . 
    关于我的第二个问题 ..  已经解决.  用request 去得到 seesionID.. 然后 包在 我要发的 消息体上面就可以了
    2009年9月2日 4:45