新建一个WebService项目,名字叫 WebServiceTest
.net会自动生成HelloWorld方法.
现在把服务的端口固定
因为我是怕过会儿端口变了,不过也可以把这个放到IIS上.(每个步骤一定要注意看,这个端口问题已经很多人出了,因为他们不是在IIS上调试)
注意要加入跨域文件crossdomain.xml
<?
xml version="1.0"
?>
<! DOCTYPE cross-domain-policy
SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" >
< cross-domain-policy >
< allow-access-from domain ="*" />
</ cross-domain-policy >
<! DOCTYPE cross-domain-policy
SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" >
< cross-domain-policy >
< allow-access-from domain ="*" />
</ cross-domain-policy >
接下来再新建一个silverlight项目.
名字就叫HelloSl
<
UserControl
x:Class
="HelloSl.Page"
xmlns ="http://schemas.microsoft.com/client/2007"
xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
Width ="400" Height ="300" >
< Grid x:Name ="LayoutRoot" Background ="White" >
< Button x:Name ="binHello" Click ="txtHello_Click" />
</ Grid >
</ UserControl >
xmlns ="http://schemas.microsoft.com/client/2007"
xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
Width ="400" Height ="300" >
< Grid x:Name ="LayoutRoot" Background ="White" >
< Button x:Name ="binHello" Click ="txtHello_Click" />
</ Grid >
</ UserControl >
向Page里面加放一个Button,好显示WebService的内容
在sl里面写入后台处理代码
namespace
HelloSl
... {
public partial class Page : UserControl
...{
public Page()
...{
InitializeComponent();
}
private void txtHello_Click(object sender, RoutedEventArgs e)
...{
HelloService.Service1SoapClient client = new HelloSl.HelloService.Service1SoapClient();
client.HelloWorldCompleted += new EventHandler<HelloSl.HelloService.HelloWorldCompletedEventArgs>(client_HelloWorldCompleted);
client.HelloWorldAsync();
}
void client_HelloWorldCompleted(object sender, HelloSl.HelloService.HelloWorldCompletedEventArgs e)
...{
this.binHello.Content = e.Result.ToString();
}
}
}
... {
public partial class Page : UserControl
...{
public Page()
...{
InitializeComponent();
}
private void txtHello_Click(object sender, RoutedEventArgs e)
...{
HelloService.Service1SoapClient client = new HelloSl.HelloService.Service1SoapClient();
client.HelloWorldCompleted += new EventHandler<HelloSl.HelloService.HelloWorldCompletedEventArgs>(client_HelloWorldCompleted);
client.HelloWorldAsync();
}
void client_HelloWorldCompleted(object sender, HelloSl.HelloService.HelloWorldCompletedEventArgs e)
...{
this.binHello.Content = e.Result.ToString();
}
}
}
接下来运行试试.先要打开WebService服务,再运行Silverlight
效果就出来了!希望学习silverlight的朋友努力(^_^)天使坠 QQ:283440946 有问题就来联系我,我会尽力的!