请在下面的案例中我需要WCF的最佳做法,
我需要将对象实例发送到WCF服务,WCF服务进程并更新相同的对象并发送回客户端。
因此,如果需要最佳实践,我是否需要维护2个对象实例?或者我可以使用相同的实例并更新并发回。请指教。
请参阅下面的代码,了解我目前的写作方式。请帮忙。
[OperationContract]
Customer DoProcess(Customer customer);
答案 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);