1

我有一个到 WCF c# 服务器的 linux c++ 客户端(通过 gSOAP)。WCF c# 服务包含执行某些操作的对象列表。每次我在服务上调用某个函数时,都会创建新对象,对该对象执行操作,并且该对象会进入服务列表。最后,我在服务上调用另一个函数,该函数循环遍历列表中的所有对象并对它们执行另一个调用。这在 c# 上按预期工作,具有客户端和服务纯 WCF。

它通过 gSOAP 工作不同。每次我通过 gSOAP 调用服务上的第一个函数时,都会执行该操作并更新列表。但每次都是新服务。所以基本上我每次都在处理新服务。我不会序列化/反序列化对象本身,将它放在 inux 端。

任何想法如何解决这个问题?

在 c# 方面,我有类似的东西(跳过了不必要的细节)

    类服务:IService
    {
        列表列表 = 新列表();
        无效 func1(int i)
        {
           Class1 c = 新 Class1(i);
           c.create();
           列表。添加(c);
        }
        无效函数2()
        {
           foreach(列表中的 Class1 c)
           {
               c.close();
           }
        }
    }

在 gSOAP 方面,我有类似的东西

    代理服务(端点);
    service.func1(1);
    service.func1(2);
    //...
    服务.func2();

正如我所说的问题是:执行 func2() 时,它在空列表上运行,这意味着代理服务的 gSOAP 对象不包含 c# 服务对象。

救命,救命!

附言。找到了解决方案:容器制作“静态”就可以了。

4

0 回答 0