gpt4 book ai didi

wcf - 简单的 WCF 问题

转载 作者:行者123 更新时间:2023-12-04 06:52:27 31 4
gpt4 key购买 nike

所以我正在学习 WCF,我遇到了一个我认为与实例控制/状态有关的问题,但我不确定。

工作流程如下,基本客户端/服务器范例。

  • 客户端调用方法 RetrieveBusinessObjects(criteria),服务器调用数据层,然后将它们放在服务器端的 IList 中。它不会将此列表返回给调用客户端。
  • 然后,客户端将调用一个方法 DisplayBusinessObjects(),该方法将从服务器检索 IList,将它们序列化,将它们连接到网络并显示它们。

  • 如果我使用 WCFTestClient 尝试此操作,它会起作用。如果我从实际客户端运行它,那么我会返回一个大小为 0 的 BusinessObject[]。这对我来说表明我没有要返回的对象。

    这是国家管理问题还是我遗漏了什么?

    最佳答案

    您需要考虑这一点:默认情况下,对 WCF 服务的每次调用都将导致新创建的服务类实例。

    因此,如果您第一次调用 RetrieveBusinessObjects(.....),则会实例化服务类的一个新实例,检索项目并将其存储在对象实例中 - 当调用完成时,该实例将被处理。

    您对 DisplayBusinessObjects() 的第二次调用将再次获得服务类的新实例 - 它不知道先前的调用,因此它的 BusinessObject 数组中不能有任何内容 - 毕竟这是一个新实例。

    这种场景效果不佳 - 您需要重新构建您的解决方案,以便单个调用将获取 并返回 业务对象列表 - 然后将它们缓存在客户端上。或者您需要使用服务器上的持久缓存/存储来缓存在调用之间获取的那些项目。

    关于wcf - 简单的 WCF 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2929863/

    31 4 0
    文章推荐: php - 无需登录用户的 Facebook Graph API 搜索
    文章推荐: drupal - 按类别对内容进行分组 - Drupal
    文章推荐: media - SDP 媒体字段格式
    文章推荐: java - JPA 有没有办法像 SELECT , count(*) FROM GROUP BY