Техника для передачи данных между настольным клиентом и службой WCF? - PullRequest
0 голосов
/ 31 августа 2011

Каков наилучший способ обмена данными между настольным приложением C # и службой WCF?Единственный известный мне сейчас метод - отправлять данные в виде строкового массива с разделителями.

Спасибо

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Какие данные вы хотите отправить в службу WCF и можете ли вы изменить как клиента, так и службу?

Для двоичных данных лучше всего использовать net.tcp-binding , который является оптимальным для данных такого типа и имеет наименьшие издержки.

Если вам просто нужно отправить несколько переменных за один вызов, вы можете украсить класс, содержащий свойства для каждой переменной, которую вы хотите отправить, с контрактом данных и отправить этот объект целиком, без необходимо использовать разделители, которые вы используете, когда все данные находятся в одной переменной.

0 голосов
/ 31 августа 2011

Это зависит от того, какие данные вы хотите отправить.

Простые данные - однозначные - следует отправлять с использованием соответствующего типа, например целого числа.

Более сложные данные должны быть помещены в объект.Рекомендуется использовать DTO , которые являются объектами без поведения.

Ваш проект WCF должен определить соответствующий класс, и любой клиент службы (ваше настольное приложение) получит доступ к этому классу.

Это гораздо проще для клиента, чем строковый массив.Чтобы взять только один пример, ваш клиент должен знать правильное местоположение в массиве строк перед установкой значения.С DTO это просто случай, например, customer.ModifiedDate = DateTime.Now;

...