Мне было интересно, было бы лучше в WCF использовать несколько контрактов на операции или иметь только один контракт на операции с полиморфным контрактом на данные.
Позвольте мне привести небольшой пример:
[OperationContract]
action1Answer action1(action1data a);
[OperationContract]
action2Answer action2(action2data a);
или
[OperationContract]
actionAnswer action(actionContract a);
Контракт действия был бы абстрактным классом, от которого наследуются как action1Contract, так и action2Contract.Контракт действия определил бы функцию-член do()
в его интерфейсе, который, в свою очередь, должен был бы быть перегружен в дочерних классах
Personnaly. Я считаю, что второй подход более интересен, поскольку он позволяет вам красиво инкапсулироватьДанные и действия в производном actionContract и, в свою очередь, облегчают добавление новых действий.Но это первый раз, когда я использую WCF, так что, вероятно, вы знаете лучше!