WCF服务不返回改变对象(WCF service not returning changed obj

2019-10-17 10:25发布

我有一个对象我传递给WCF服务。 然后在服务器上,该服务修改对象的某些性质,并返回一个int。

在客户端,服务调用后,对对象的属性所做的更改不存在。

我的单元测试正常工作。 但是,当过服务运行时,会出现问题。

有想法该怎么解决这个吗?

Answer 1:

当你传递的东西在服务边界它被按值传递而不是按引用,这样服务器上所做的任何更改将不会传播到从客户端传递的对象。 所以,你会想返回修改后的对象返回给客户端。 如果您还需要返回诠释你可以创建一个包装类,可以包含int和变化的目标。



Answer 2:

@jodogger,也许我失去了一些东西,但如果服务返回一个int,它肯定不会改变你的对象。

问题是,你的对象实际上从未使往返于服务器。 由于WCF的断开性质的,必须BYVAL而不是按地址传递值。

如果必须在WCF服务改变值,你需要做这样的事情:

myObject = WCFService.MethodName(myObject);

这实际上不是回来了相同的对象,但你会与该对象的新值重挫旧的对象。

请注意,返回的对象将需要通过在界面中的DataContract部分以及实现本身产生。



文章来源: WCF service not returning changed object
标签: wcf service