zoukankan      html  css  js  c++  java
  • [Silverlight] 一个易犯的错误:关于调用 WCF 服务

    在采用 Silverlight 调用 WCF 的开发过程中,今天遇到一个错误。
    由于 Silverlight 中只支持异步方式的 WCF 调用,所以代码一般是这样子的:

    var myServiceClient = new MyServiceClient();
    myServiceClient.GetSomeDataCompleted 
    += (sender, args) => 
    {
          HtmlPage.Window.Alert(
    "completed.");
    };
    myServiceClient.GetSomeDataAsync();

    这样写是没有问题的。

    但是有的朋友可能为了提高代码共用程度,而把 myServiceClient 这个 WCF 的客户端代理对象作为类的字段来定义,以便在多次调用中共享。比如这篇教程中所说的:

    “这一步比较复杂,这里分小点讨论。为了调用WCF服务,先定义一下全局变量。

    AcademeServiceClient academeSClient;


    这样做有什么问题呢?

    假设我们上面的代码是在一个按钮的点击事件处理函数里定义的,那么,就会导致每点击一次按钮就注册一次 GetSomeDataCompleted 的事件处理函数。最后你会发现点一次按钮,会重复多次执行回调函数。

    所以还是不要共用 client 代理了,每次调用之前创建一个比较好。
    因为今天遇到了这个错误,在这里提醒一下大家。

  • 相关阅读:
    Android深度探索-卷1 第三章
    Android深度探索-卷1 第四章
    Android深度探索-卷1 第二章
    Android深度探索-卷1 第一章
    硬件抽象层HAL
    嵌入式Linux调试技术
    蜂鸣器驱动
    控制发光二极管
    搭建S3C6410开发板的测试环境
    统计单词个数
  • 原文地址:https://www.cnblogs.com/RChen/p/1246680.html
Copyright © 2011-2022 走看看