wcf调用,silverlight通过调用WCF访问数据

1.新建一个wcf service application
2.定义好接口,方法
3.新建一个silverlight应用程序,自带一个website
4.在silverlight中添加引用服务,选择刚刚建好的wcf服务
5.在silverlight设计器中画好界面,并在后台调用服务,类似与这样:
/// <summary>
/// 乘法
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, RoutedEventArgs e)
{
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
client.MultiplyCompleted += new EventHandler<ServiceReference1.MultiplyCompletedEventArgs>(client_MultiplyCompleted);
client.MultiplyAsync(double.Parse(string.IsNullOrEmpty(textBox7.Text.Trim()) ? "0" : textBox7.Text.Trim()), double.Parse(string.IsNullOrEmpty(textBox8.Text.Trim()) ? "0" : textBox8.Text.Trim()));
}
void client_MultiplyCompleted(object sender, ServiceReference1.MultiplyCompletedEventArgs e)
{
textBox9.Text = e.Result.ToString();
}
6.需要注意的是,在wcf service application项目的根目录需要放置一个配置文件,以便于silverlight可以跨域执行方法调用。
此文件需要放置在wcf service application根目录下
ClientAccessPolicy.xml
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
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="*" />
<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>
以上两个配置文件都需要放置在website网站根目录下
Tags: 

延伸阅读

最新评论

发表评论