c#webservice的简单示例

如题所述

第1个回答  2022-09-29

  是webservice 就概念上来说 可能比较复杂 不过我们可以有个宏观的了解 webservice就是个对外的接口 里面有 函数可供外部客户调用(注意 里面同样有客户不可调用的函数) 假若我们是服务端 我们写好了个webservice 然后把它给了客户(同时我们给了他们调用规则) 客户就可以在从服务端获取信息时处于一个相对透明的状态 即使客户不了解(也不需要)其过程 他们只获取数据

  webservice传递的数据只能是序列化的数据 典型的就是xml数据

  下面以一个简单例子为例

  (一)新建——-项目 -Visual C# web ASP NET Web 服务应用程序 命名为TestWebService

  此时的目录结构如图所示

  

  我们修改Service a *** x的名字为 MyService a *** x

  同时修改文件中的class名

  public class MyService: System Web Services WebService

  {

  [WebMethod]

  public string HelloWorld()

  {

  return Hello World ;

  }

  }

  同时修改文件MyService a *** x(右击 查看标记 如果在vs环境下双击打开的是 cs文件)

  <%@ WebService Language= C# CodeBehind= MyService a *** x cs Class= TestWebService Service %>改为

  <%@ WebService Language= C# CodeBehind= MyService a *** x cs Class= TestWebService MyService %>

  (二)重新生成项目 右击MyService a *** x 选择 在浏览器中查看 即可检查本项目是否有语法错误

  (三)在MyService a *** x添加指定方法

  using System;

  using System Data;

  using System Web;

  using System Collections;

  using System Web Services;

  using System Web Services Protocols;

  using System ComponentModel;

  namespace TestWebService

  {

  /// <summary>

  /// Service 的摘要说明

  /// </summary>

  [WebService(Namespace = )]

  [WebServiceBinding(ConformsTo = WsiProfiles BasicProfile _ )]

  [ToolboxItem(false)]

  public class MyService: System Web Services WebService

  {

  [WebMethod]//必须要有的 为了说明 其下是一个方法 每一个方法前面都需要有

  public string getName()

  {

  return Hope ;

  }

  [WebMethod]

  public string getAge()

  {

  return ;

  }

  }

  }

  重新生成项目 右击MyService a *** x 选择 在浏览器中查看 效果如下

  

  

  (四)发布在外网上

  这里我是在本机上测试的 所以没有必要发布 如果要发布到外网上 我们可以通过

  把bin文件下的文件以及与bin(包括 dll和 pdb文件)同级目录的a *** x文件上传到外网即可

  (五)使用web service接口

  新建一个普通的windows应用程序 右击 添加web引用

  如图

  

  改一下web引用名为 HopeWebService如图

  

  此时 我们可以使用webservice中的方法了 通过HopeWebService我们可以访问其中的两个方法

  (六)使用方法

  HopeWebService MyService obj = new HopeWebService MyService()

  MessageBox Show( name is: + obj getName()+ ;age is: + obj getAge())

lishixinzhi/Article/program/net/201311/11171

相似回答