[Silverlight] 一个易犯的错误:关于调用 WCF 服务
来源:互联网 发布:淘宝欧时力代购真假 编辑:程序博客网 时间:2024/05/16 23:56
在采用 Silverlight 调用 WCF 的开发过程中,今天遇到一个错误。
由于 Silverlight 中只支持异步方式的 WCF 调用,所以代码一般是这样子的:
var myServiceClient = new MyServiceClient();
myServiceClient.GetSomeDataCompleted += (sender, args) =>
{
HtmlPage.Window.Alert("completed.");
};
myServiceClient.GetSomeDataAsync();
myServiceClient.GetSomeDataCompleted += (sender, args) =>
{
HtmlPage.Window.Alert("completed.");
};
myServiceClient.GetSomeDataAsync();
这样写是没有问题的。
但是有的朋友可能为了提高代码共用程度,而把 myServiceClient 这个 WCF 的客户端代理对象作为类的字段来定义,以便在多次调用中共享。比如这篇教程中所说的:
“这一步比较复杂,这里分小点讨论。为了调用WCF服务,先定义一下全局变量。
”
这样做有什么问题呢?
假设我们上面的代码是在一个按钮的点击事件处理函数里定义的,那么,就会导致每点击一次按钮就注册一次 GetSomeDataCompleted 的事件处理函数。最后你会发现点一次按钮,会重复多次执行回调函数。
所以还是不要共用 client 代理了,每次调用之前创建一个比较好。
因为今天遇到了这个错误,在这里提醒一下大家。
- [Silverlight] 一个易犯的错误:关于调用 WCF 服务
- Silverlight调用WCF服务
- silverlight中调用wcf服务
- Silverlight 调用WCF常见错误
- 关于for循环的一个初学者易犯得错误。
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight 2 beta 2 bug 解决办法 (持续更新中)
- Silverlight + WCF 常见错误调试方法
- [Silverlight] 写了两个方便 DOM 查找的扩展方法
- Scott Guthrie 写的 Silverlight 教程索引
- Silverlight 文章收集
- [Silverlight] 一个易犯的错误:关于调用 WCF 服务
- [Silverlight] 改进 Nikhil Kothari 的换肤方案:允许自定义控件的皮肤定义
- Silverlight 的文本框自动完成(AutoComplete)
- Silverlight 下换肤的实现
- Silverlight 下苹果(Mac OS)风格按钮的实现
- Silverlight 之模态对话框的通用模拟
- Silverlight 数据绑定 (2):Source to Target
- Silverlight 数据绑定 (1):怎样实现数据绑定
- Silverlight 2 的 DataGrid 基本使用方法