По сути, вам нужно, чтобы ваша служба WCF знала о структуре.
Помните: вызов службы WCF - это передача сообщения (WCF сериализует объект, помещает его в конверт и отправляет его; это не удаленный вызов процедуры или какой-либо объект удаленного взаимодействия!) и вам нужно сделать это сообщение, чтобы вызывающий и вызываемый могли его сериализовать и десериализовать!
Создать DataContracts
для ваших классов объектов, отправляемых туда и обратно - это самый простой способ.
Вы можете также работать с нетипизированными сообщениями в WCF - но это гораздо больше ручной работы, и я настоятельно рекомендую сначала изучить маршрут DataContract!
См. сообщение в блоге и документы MSDN о том, как обращаться с нетипизированными сообщениями в WCF.
Марк