WCF服务+向/从服务传递和接收相同的对象&客户

时间:2014-05-27 12:32:17

标签: c# wcf

请在下面的案例中我需要WCF的最佳做法,

我需要将对象实例发送到WCF服务,WCF服务进程并更新相同的对象并发送回客户端。

因此,如果需要最佳实践,我是否需要维护2个对象实例?或者我可以使用相同的实例并更新并发回。请指教。

请参阅下面的代码,了解我目前的写作方式。请帮忙。

[OperationContract]   
 Customer DoProcess(Customer customer);

2 个答案:

答案 0 :(得分:0)

由于您不想保留已发送的对象,因此无需维护两个对象。始终建议不要创建多个引用,也不创建对象。

如果是对象,你将有一个单独的副本,这意味着更多的内存,而在引用变量中你也会浪费4到8个字节+ CPU开销。

根据内存管理的原则,我建议您更新并返回。

答案 1 :(得分:0)

请考虑以下情形: 客户端调用WCF服务函数并将客户作为参数传递。

Customer c = new Customer();
WCFProxy.DoProcess(c);

现在该对象将被序列化并发送到wcf服务。 该服务现在将执行DoProcess函数,如下所示;

Customer DoProcess(Customer customer){
customer.name = 'abc';
return customer;
}

这不会更新客户传递的客户。它将返回一个将被序列化并传递给客户的新客户。

因此,在客户端上,您可以将客户实例设置为返回的客户:

c = WCFProxy.DoProcess(c);