Пожалуйста, мне нужны лучшие практики для WCF в моем случае ниже,
Мне нужно отправить экземпляр объекта в службу WCF, процессы службы WCF и обновить один и тот же объект и отправить обратно клиенту.
Итак, с лучшей практикой мне нужно поддерживать 2 экземпляра объекта? или я могу использовать тот же экземпляр и обновить и отправить обратно. Пожалуйста, порекомендуйте.
см. ниже код того, как я пишу в настоящее время. пожалуйста помоги.
[OperationContract]
Customer DoProcess(Customer customer);
Поскольку вы не хотите сохранять переданный объект, тогда нет необходимости поддерживать два объекта. Всегда желательно не создавать несколько ссылок, ни объекты.
В случае объектов у вас будет отдельная копия, что означает больше памяти, а в ссылочной переменной вы будете тратить от 4 до 8 байтов + накладные расходы ЦП.
С принципом управления памятью я рекомендую вам обновить то же самое и вернуться назад.
Рассмотрим следующий сценарий: клиент вызывает функцию servcice WCF и передает клиент в качестве параметра.
Customer c = new Customer();
WCFProxy.DoProcess(c);
Теперь объект будет сериализован и отправлен в службу wcf. служба теперь будет выполнять функцию DoProcess следующим образом;
Customer DoProcess(Customer customer){
customer.name = 'abc';
return customer;
}
это не будет обновлять клиента, переданного клиентом. Он вернет нового клиента, который будет сериализован и передан клиенту.
Таким образом, на клиенте вы можете настроить свой клиентский экземпляр на возвращаемого клиента как таковой:
c = WCFProxy.DoProcess(c);