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

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

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

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

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

 

ContractedBlock.gifExpandedBlockStart.gifCode
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代码如下:

 

<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代码如下:


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环境中调试通过。本文参照了部分网络资料,希望能够抛砖引玉,大家共同学习。
(转载本文请注明出处)

转载于:https://www.cnblogs.com/wsdj-ITtech/archive/2009/08/28/1555525.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

导出文件_一招解决PDF文件导出图片

将PDF文件保存为高清图片是经常需要进行的保存方式之一&#xff0c;因为PDF文件虽然安全性高&#xff0c;但是相比较图片而言&#xff0c;还是不易进行查看的&#xff0c;那么如何将PDF文件导出图片呢&#xff1f;以前也了解过很多方法&#xff0c;不过最好的当然不是截图了。虽…

linux缓存文件用户权限错误,CVE-2019-11244漏洞到底该如何修复?--关于缓存文件权限设置...

2019年5月&#xff0c;Kubernetes社区(后面简称”社区“)修复了标号为CVE-2019-11244的安全漏洞&#xff0c;这个修复方案似乎并不彻底&#xff0c;于是有人发布Issue对此提出异议&#xff0c;希望提供进一步修复方案。虽然Kubernetes已经非常安全&#xff0c;但对于一些安全标…

高中数学40分怎么办_2019年第35届全国高中数学联赛试题及参考答案

2019年第35届全国高中数学联赛考试已结束&#xff0c;本文收集整理本次数学联赛的试题和参考答案&#xff0c;以供大家了解参考。本次数学联赛由全国高中数学联赛组委会统一命题&#xff0c;共分为一试和二试。一试时间为80分钟&#xff0c;包括8道填空题(每题8分)和3道解答题(…

一个把图片保存到SQL数据库的工具

因公司的业务需要,会把很多图片保存到数据库中.因此做了一个很简单的工具,把图片保存到SQL数据库中.1.可以连接到不同服务器上的SQL数据库,可以选择操作各个表;2.可以指定保存到数据库的图片格式(JPG or BMP);3.可以用windows图片和传真查看器预览图片.下载地址:一个把图片保存…

redis 哨兵_Redis哨兵机制的原理介绍

php中文网最新课程每日17点准时技术干货分享本篇文章给大家带来的内容是介绍Redis的哨兵机制&#xff0c;让大家了解哨兵机制的原理和如何实现。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。概述Redis的复制有一个缺点&#xff0c;当主…

BoooLee pyretoolkit -- 一个基于python re模块的在线正则表达式测试工具

为了学习python re模块正则表达式&#xff0c;寻找了一些正则表达式工具&#xff0c;除了komodo捆绑的rx toolkit外&#xff0c;其他的测试工具都是基于.net或其他引擎的&#xff0c;语法上多少有点出入。 干错自己写一个&#xff0c;用了2天时间&#xff0c;python re googl…

【大数据】NiFi 的基本使用

NiFi 的基本使用 1.NiFi 的安装与使用1.1 NiFi 的安装1.2 各目录及主要文件 2.NiFi 的页面使用2.1 主页面介绍2.2 面板介绍 3.NiFi 的工作方式3.1 基本方式3.2 选择处理器3.3 组件状态3.4 组件的配置3.4.1 SETTINGS&#xff08;通用配置&#xff09;3.4.2 SCHEDULING&#xff0…

linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...

作业一&#xff1a;1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖)cat /etc/passwd /etc/group > /1.txt2)将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加)cat /etc/passwd /etc/shadow >> /2.txt3)将/1.txt、/2.…

sqlserver大数据表操作慢_架构师必看!操作日志系统搭建秘技

​在Java开发中&#xff0c;我们经常会遇到一个棘手的问题&#xff1a;记录用户的操作行为。某些操作是相对简单的&#xff0c;我们可以逐条记录。但是某些操作行为却很难记录&#xff0c;例如编辑操作。在某一次操作中&#xff0c;用户可能编辑了对象A的几个属性&#xff0c;而…

sql共享功能目录无法更改_大企业数据库服务首选!AliSQL这几大企业级功能你不可不知...

MySQL代表了开源数据库的快速发展&#xff0c;从2004年前后的Wiki、WordPress等轻量级Web 2.0应用起步&#xff0c;到2010年阿里巴巴在电商及支付场景大规模使用MySQL数据库&#xff0c;再到2012年开始阿里云RDS for MySQL为成千上万家客户提供可靠的关系数据库服务&#xff0c…

递归下降语法分析器的构建_一文了解函数式查询优化器Spark SQL Catalyst

大数据技术与架构点击右侧关注&#xff0c;大数据开发领域最强公众号&#xff01;暴走大数据点击右侧关注&#xff0c;暴走大数据&#xff01;记录一下个人对sparkSql的catalyst这个函数式的可扩展的查询优化器的理解&#xff0c;目录如下&#xff1a;0. Overview1. Catalyst工…

被远程机器长时间无响应 (错误码:[308])_自动折叠式“Rollbot”为完全不受束缚的软机器人铺平了道路...

如今&#xff0c;大多数软机器人依靠外部电源和控制&#xff0c;使它们与车外系统连接或用硬件组装。现在&#xff0c;来自哈佛大学约翰保尔森工程与应用科学学院&#xff08;SEAS&#xff09;和加州理工学院的研究人员开发了受折纸结构启发的软机器人系统&#xff0c;可以根据…

linux中将光标与操作系统,linux操作系统基本命令介绍(2)

whoami 查看当前用户su - 用户名 切换用户的同时再切换用户空间创建工作组(注意&#xff1a;需要切换到root用户)groupadd 组名删除工作组groupdel 组名修改用户所在组usermod -g 用户名 组名添加用户账号useradd 用户名-d 指定用户登录系统时的主目录&#xff0c;如果不使用该…

vm磁盘映射 不能启动_Oracle的启动与关闭-数据库(4)

Oracle数据的库的启动与关闭&#xff0c;为了节约资源消耗&#xff0c;把我们用到的服务开启&#xff0c;这样对于项目开发也有好处。1 Oracle 启动Oracle 是通过系统的服务来启动的。图1. 找到计算机管理图2. 找到服务&#xff0c;点击图3. Oracle相关启动项图4. 如何关闭和启…

学习总结——实现生成excel表格(方法二)

本方法主要是利用了反射&#xff0c;具体代码如下&#xff1a;Codepublic static int ExportTohtmlExcel__dksq_view(string strsql) { //贷款申请信息获得 BLLibrary.BView_jbxx_dksq viewdal new BView_jbxx_dksq(); IList<View…

linux svn cleanup 用法,SVN命令之清理命令(clean up)的功能及使用技巧

SVN的清理命令&#xff0c;我们经常会使用。这个命令的原理&#xff0c;我们还是有必要深究一下的。当SVN改变你的工作拷贝(或是.svn中的任何信息)&#xff0c;它会尽可能的小心。在进行任何修改操作时&#xff0c;SVN都会把日志记录到日志文件中&#xff0c;然后执行log文件中…

python string转int_我用Python搞资源 [ 02 ]

这不是教程&#xff0c;所以没有基础的你看不懂也很正常&#xff0c;去后面点个赞就好。一. 目标链接上一个推送处理了一个不带密码的蓝奏云分享链接&#xff0c;这回处理一下带密码的分享链接。https://lanzoux.com/b015ybdmh 密码:9n8z为了能有一个合适的链接来练手&…

c语言数字字体的格式,c语言—— 格式控制符—— 数据类型——相对应的字节数...

这是转义scanf("%lf", &r);枚举类型&#xff1a;https://www.cnblogs.com/bhlsheji/p/5204541.htmlANSI C标准基本类型的字长与范围基本类型 字长 范围char(字符型) 1字节 -128~127int(整型) 2字节 -32768~32767float(单精度浮点型) 4字节 约精确到6位数double(双…

电子设计大赛作品_第十四届电子设计大赛圆满结束!

为了激发学生的创造性&#xff0c;加强学生动手能力的培养和工程实践的训练&#xff0c;提高学生针对实际问题进行电子设计制作的综合能力&#xff0c;我院于2020年11月6号下午12点50分举行“安阳工学院第十四届电子设计大赛决赛”。1本次比赛由12组热爱电子设计的同学组成。由…

向左滚动,每次滚动的长度可以设置,然后暂停后继续滚动

支持FF等所有浏览器 向左滚动&#xff0c;每次滚动的长度可以设置&#xff0c;然后暂停后继续滚动 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"> <HTML>&l…