我有一个linux c ++客户端(通过gSOAP)到WCF c#server。 WCF c#服务包含对象列表,在其上执行某些操作。每次我在服务上调用某个函数时,都会创建新对象,执行对该对象的操作,并且该对象在服务中进入列表。最后我在服务上调用另一个函数,它循环遍历列表中的所有对象并对它们执行另一个调用。这适用于c#,客户端和服务纯WCF。
它通过gSOAP有所不同。每次我通过gSOAP调用服务的第一个函数时,执行该操作并更新列表。但它每次都是新服务。所以基本上我每次都在处理新服务。我不会序列化/反序列化对象本身,将其放在inux端。
任何想法如何解决这个问题?
在c#方面我有类似的东西(跳过不必要的细节)
class Service : IService { List list = new List(); void func1(int i) { Class1 c = new Class1(i); c.create(); list.Add(c); } void func2() { foreach(Class1 c in list) { c.close(); } } }
在gSOAP方面我有类似
的东西Proxy service (endpoint); service.func1(1); service.func1(2); //... service.func2();
正如我所说的问题是:当执行func2()时,它在空列表上运行,这意味着代理服务的gSOAP对象不包含c#服务对象。
帮助,帮助!
PS。 找到解决方案:容器制成“静态”就可以了。