zoukankan      html  css  js  c++  java
  • 一个简单的webservice调用

    一个简单的webservice调用

    一个简单的webservice调用

     
    我们先创建一个简单空web应用程序
    然后添加新建项目
    复制代码
    //我们创建一个peson对象,产生数据标识返回

    using
    System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace 创建简单的WebService服务 { /// <summary> /// WebService1 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService] public class WebService1 : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod]//必须用它标记,不然获取不到 public List<Person> GetPeson() { List<Person> list = new List<Person>(); for (int i = 0; i < 100; i++) { list.Add(new Person { Name=""+i,Age=i+10,Sex=i%2==0?Sex.男:Sex.女,Tel=0871-695432+i,Adress="昆明市盘龙区"+i+""}); } return list; } [Flags] public enum Sex { 男, 女 } public class Person { public string Name { get; set; } public int Age { get; set; } public Sex Sex { get; set; } public int Tel { get; set; } public string Adress { get; set; } } } }
    复制代码

    我们所需要的数据服务已经创建好了,现在发布服务,我们发布服务的方式有恨多种,可以生成,发布包等

    我们服务发布了,我们然后引用,需要一个宿主,宿主可以根据自己需要随便添加,这里添加一个wpf宿主来调用数据显示,

    添加引用服务,注意服务一定要发布,不然会找不到,报错

    这里我们可以通过发现的服务,到游览器看看有什么:

    我们可以看到服务中所标记的GetPeson(),HelloWorld()方法;

    wpf项目中已经引用了服务,下面展示如何使用:

    我们来使用服务:

    复制代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace 调用WebService数据
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
          //服务使用
            ServiceReference1.WebService1SoapClient client;
            public MainWindow()
            {
                InitializeComponent();
                client = new ServiceReference1.WebService1SoapClient();
                this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
    
            //    //异步,我们可以订阅GetPesonCompleted事件
            //    this.client.GetPesonCompleted += new EventHandler<ServiceReference1.GetPesonCompletedEventArgs>(client_GetPesonCompleted);
            }
    
            //void client_GetPesonCompleted(object sender, ServiceReference1.GetPesonCompletedEventArgs e)
            //{
            //    throw new NotImplementedException();
            //}
    
            void MainWindow_Loaded(object sender, RoutedEventArgs e)
            {
                //type1这种方式并不是很好,出现问题有时并不受控制,这是同步调用
            
                dataGrid1.AutoGenerateColumns = true;
                dataGrid1.ItemsSource= client.GetPeson();//获取数据绑定
                //出现一个问题多生成一列,不知道是什么状况,隐藏多生成的第一列
               dataGrid1.Columns[0].Visibility =Visibility.Collapsed;
    
              
            }
        }
    }
    复制代码

    多生成一列,没看懂什么状况,有人知道的话说下

     最终效果,我们可以看到通过ws获取到数据,

    上面调用数据是通过同步的方式调用,我们也可以设置成异步的;

    我想异步大家都懂,就不说了,更多WCF问题以后说明,文章写写得很菜,大家勿喷..........

    代码示例:http://files.cnblogs.com/BABLOVE/%E5%88%9B%E5%BB%BA%E7%AE%80%E5%8D%95%E7%9A%84WebService%E6%9C%8D%E5%8A%A1.rar

     
     
    分类: WCF
  • 相关阅读:
    IIS7.5应用程序池集成模式和经典模式的区别【转】
    Qt keyPressEvent keyReleaseEvent 分析
    cesium编程中级(二)源码编译
    cesium编程中级(一)添加示例到Sandcastle
    cesium编程中级开篇
    cesium编程入门(九)实体 Entity
    cesium编程入门(八)设置材质
    QPushButton 点击信号分析
    cesium编程入门(七)3D Tiles,模型旋转
    cesium编程入门(六)添加 3D Tiles,并调整位置,贴地
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3267425.html
Copyright © 2011-2022 走看看