`
gstarwd
  • 浏览: 1525584 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SilverLight学习笔记--Silverlight中WebService通讯

阅读更多

本文我们学习如何在Silverlight中使用WebService进行通讯。
新建项目Silverlight应用程序,命名为:SLWebService。
在服务器端我们需要做两项目工作:
1、在Web项目中新建一个类Person,我们将在WebService中返回它的实例化对象。Person类定义如下:

 

<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;

namespace  SLWebService.Web
{
    
public   class  Person
    {
        
public   string  Name {  get set ; }
        
public   int    Age {  get set ; }
    }
}

2、在Web项目中建立一个WebService,命名为MySLWebService.asmx,它的主要任务就是返回一个Person类数组,代码如下:

 


<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.Services;

namespace  SLWebService.Web
{
    
///   <summary>
    
///  MySLWebService 的摘要说明
    
///   </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  MySLWebService : System.Web.Services.WebService
    {

        [WebMethod]
        
public   string  HelloWorld()
        {
            
return   " Hello World " ;
        }

        [WebMethod]
        
public  Person[] GetPeople()
        {
            List
< Person >  People  =   new  List < Person > ()
        {
           
new  Person{ Name = " Jack " ,Age = 12 },
           
new  Person{ Name = " Tom " ,Age = 22 },
           
new  Person{ Name = " Simon " ,Age = 32 },
           
new  Person{ Name = " Richard " ,Age = 26 }
        };

            
return  People.ToArray();
        }
        
    }
}

在客户端我们需要做如下工作:
1、建立用户界面.Page.xaml代码如下:

 

<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->< UserControl x:Class = " SLWebService.Page "
    xmlns
= " http://schemas.microsoft.com/winfx/2006/xaml/presentation "  
    xmlns:x
= " http://schemas.microsoft.com/winfx/2006/xaml "  
    Width
= " 400 "  Height = " 300 " >
  
< StackPanel Width = " 400 "  Height = " 300 "  Background = " Wheat " >
         
< TextBlock Text = " 通过WebService取得的数据如下 "  TextAlignment = " Center "  Foreground = " Red "   FontSize = " 18 " ></ TextBlock >
         
< Button x:Name = " btnGetWebService "  Width = " 200 "  Height = " 30 "  Content = " 获取数据 "  Click = " btnGetWebService_Click " ></ Button >
        
< ListBox x:Name = " People "  Width = " 300 "  Height = " 200 "  Margin = " 20 " >
            
< ListBox.ItemTemplate >
                
< DataTemplate >
                    
< StackPanel Orientation = " Vertical " >
                        
< StackPanel Orientation = " Horizontal " >
                          
< TextBlock Text = " 姓名 "  Width = " 100 "  Foreground = " Blue "   ></ TextBlock >
                          
< TextBlock Text = " 年龄 "  Width = " 100 "  Foreground = " DarkBlue " ></ TextBlock >
                        
</ StackPanel >
                        
< StackPanel Orientation = " Horizontal " >
                        
< TextBlock Text = " {Binding Name} "  Foreground = " Red "   Width = " 100 "   ></ TextBlock >
                        
< TextBlock Text = " {Binding Age} "   Foreground = " Green "   Width = " 100 "   ></ TextBlock >
                        
</ StackPanel >
                    
</ StackPanel >
                
</ DataTemplate >
            
</ ListBox.ItemTemplate >
        
</ ListBox >
    
</ StackPanel >
</ UserControl >

界面如下:


                        

2、在Silverlight项目中引用服务器端的WebService,命名为MyWebServiceRef。

                        
引用后,程序如下图:


                        
3、在客户端使用WebService,通过WebService从服务器端取得数据,在本地处理后显示在用房界面上。Page.xaml.cs代码如下:

 

<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Net;
using  System.Windows;
using  System.Windows.Controls;
using  System.Windows.Documents;
using  System.Windows.Input;
using  System.Windows.Media;
using  System.Windows.Media.Animation;
using  System.Windows.Shapes;

using  SLWebService.MyWebServiceRef;  // 加入对MyWebServiceRef的引用


namespace  SLWebService
{
    
public   partial   class  Page : UserControl
    {
        
public  Page()
        {
            InitializeComponent();
        }

        
private   void  btnGetWebService_Click( object  sender, RoutedEventArgs e)
        {
            
// 使用WebService从服务器端得到数据并在本地端进行处理
            MySLWebServiceSoapClient client  =   new  MySLWebServiceSoapClient();   
            client.GetPeopleCompleted  
+=   new  EventHandler < GetPeopleCompletedEventArgs > (client_GetPeopleCompleted);
            
            client.GetPeopleAsync();
        }

        
void  client_GetPeopleCompleted( object  sender, GetPeopleCompletedEventArgs e)
        {
            
if  (e.Error  ==   null )
            {
                People.ItemsSource 
=  e.Result;  // 绑定结果到UI的List控件
            }
        }

    }
}

效果如下图:
                        

前往:Silverlight学习笔记清单

本文程序在Silverlight2.0和VS2008环境中调试通过。本文参照了部分网络资料,希望能够抛砖引玉,大家共同学习。
(转载本文请注明出处)

Tag标签: Silverlight ,WebService
分享到:
评论

相关推荐

    silverlight-通过-WebService-连接数据库.doc

    在本文档中,我们探讨了如何使用Silverlight通过WebService与数据库进行交互,特别是实现了DataGrid中的数据增删改查功能。Silverlight是一种强大的RIA(Rich Internet Application)开发技术,允许开发者创建具有...

    webservice学习笔记 -- XFrie

    【Web Service学习笔记——XFrie框架详解】 Web Service是一种通过网络进行通信的服务,它允许不同的应用程序之间进行数据交换,跨越了操作系统和编程语言的障碍。XFrie是一个轻量级、高性能的Java Web Service框架...

    日常笔记-WebService

    日常笔记-WebService

    dubbo-rpc-webservice-2.8.4

    dubbo-rpc-webservice-2.8.4 dubbo-rpc-webservice-2.8.4

    Laravel开发-laravel-webservice

    `laravel-webservice-master`可能是一个包含了示例代码和配置文件的项目,它展示了如何在Laravel中结合httpful实现Web服务。这个项目可能包括了创建API端点、处理请求和响应、认证与授权、错误处理等实践案例,帮助...

    SilverLight 2.0 调用 WebService 视频教程

    SilverLight 2.0 调用 WebService 视频教程 SilverLight 2.0 调用 WebService 视频教程 SilverLight 2.0 调用 WebService 视频教程 SilverLight 2.0 调用 WebService 视频教程

    Python库 | PedalPi-WebService-0.3.0.tar.gz

    PedalPi-WebService-0.3.0是Python生态系统中的一个重要组件,它提供了一种高效且灵活的方式来创建RESTful API,这对于构建面向服务的架构(SOA)或微服务架构至关重要。REST(Representational State Transfer)是...

    Ajax学习笔记---3种Ajax的实现方法【推荐】

    2. **Flash / Flex (Adobe) / Silverlight (Microsoft)**:这些是基于浏览器插件的富互联网应用(RIA)技术,提供了与Ajax类似的功能,但它们更侧重于图形和多媒体内容的展示。 ### Ajax解决了什么问题 传统的网页...

    webService学习笔记

    在本篇WebService学习笔记中,我们将探讨几个关键的概念和技术,包括SOAP协议、JAX-WS、WSDL文档以及一些常用的Web服务框架。 首先,SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在分布式环境...

    EAS-WebService开发指南.pdf

    在EAS-WebService开发中,首先需要在设计开发工具中新建一个Facade对象。Facade对象是一个中间层对象,负责将业务逻辑封装成Web服务。开发者可以根据需要选择合适的Facade对象,例如,在本例中,我们选择了...

    WebService学习笔记

    【WebService学习笔记】 WebService是一种基于互联网的、标准化的、跨平台的、跨语言的通信机制,使得不同系统间的应用程序可以互相交互数据和服务。它的核心理念是服务导向架构(SOA),即通过服务的方式实现应用...

    springboot-cxf-webservice

    本教程将深入探讨如何在SpringBoot项目中集成CXF,实现Web服务的创建与调用,非常适合初学者学习。 一、SpringBoot简介 SpringBoot是Spring框架的扩展,旨在简化Spring应用的初始搭建以及开发过程。它预设了各种...

    尚硅谷Webservice学习笔记

    在本篇尚硅谷的学习笔记中,主要涉及了Web Service的基础概念、Schema约束、HTTP协议以及相关面试问题。 1. Schema约束: - Schema是XML Schema Document的缩写,它是一种XML格式,用于定义其他XML文档的结构和...

    webservice学习笔记doc文档

    在本学习笔记中,主要介绍了使用Apache Axis2框架来开发和测试Web Service的过程。Apache Axis2是Apache SOAP栈的一个实现,提供了简单且高效的Web Service开发工具。 首先,开发者需要在Eclipse集成开发环境中搭建...

    [JAVA]-Axis-Webservice-Demo

    Java Axis Web服务示例(`[JAVA]-Axis-Webservice-Demo`)提供了发布和调用Web服务的实际操作步骤。通过学习和实践这个示例,开发者可以更好地掌握使用Axis创建Web服务的技术,理解Web服务的基本原理,以及如何通过...

    WebService------AXIS

    WebService——AXIS详解 在IT领域,WebService是一种基于标准的、平台无关的、可以在不同系统之间交换数据的方式。它利用XML(可扩展标记语言)作为数据格式,HTTP作为传输协议,SOAP(简单对象访问协议)作为消息...

    05-ApacheCamel-CXF-WebService

    在项目中,"05-ApacheCamel-CXF-WebService-Client"这部分内容可能是客户端的应用,用于调用由Apache CXF和Camel服务端提供的Web服务。客户端通常包括CXF的客户端API配置,以及Camel的路由定义,用于发起服务请求并...

    Silverlight动态加载外部XML指定地址的WebService源码例子

    接下来,我们要学习如何在Silverlight中加载XML文件。这通常涉及使用XamlParser或XDocument类。XamlParser可以解析XML字符串,而XDocument则允许我们直接操作XML文档。在加载XML文件后,我们可以使用XPath或Linq to ...

Global site tag (gtag.js) - Google Analytics