我有一个对象我传递给WCF服务。 然后在服务器上,该服务修改对象的某些性质,并返回一个int。
在客户端,服务调用后,对对象的属性所做的更改不存在。
我的单元测试正常工作。 但是,当过服务运行时,会出现问题。
有想法该怎么解决这个吗?
我有一个对象我传递给WCF服务。 然后在服务器上,该服务修改对象的某些性质,并返回一个int。
在客户端,服务调用后,对对象的属性所做的更改不存在。
我的单元测试正常工作。 但是,当过服务运行时,会出现问题。
有想法该怎么解决这个吗?
当你传递的东西在服务边界它被按值传递而不是按引用,这样服务器上所做的任何更改将不会传播到从客户端传递的对象。 所以,你会想返回修改后的对象返回给客户端。 如果您还需要返回诠释你可以创建一个包装类,可以包含int和变化的目标。
@jodogger,也许我失去了一些东西,但如果服务返回一个int,它肯定不会改变你的对象。
问题是,你的对象实际上从未使往返于服务器。 由于WCF的断开性质的,必须BYVAL而不是按地址传递值。
如果必须在WCF服务改变值,你需要做这样的事情:
myObject = WCFService.MethodName(myObject);
这实际上不是回来了相同的对象,但你会与该对象的新值重挫旧的对象。
请注意,返回的对象将需要通过在界面中的DataContract部分以及实现本身产生。