IMO, авторские методы, которые производят вывод через побочные эффекты, являются "плохой" вещью. Сказав, однако, есть ли обстоятельства, которые требуют этой модели? Да.
Конечно, модель программирования C # допускает это, WCF нарушена? Нет. В определенный момент нужно понимать, что они потребляют WCF, и в качестве структуры он пытается удовлетворить большинство сценариев использования [например, реплицировать все входные параметры во всех обходах, чтобы сохранить неявную семантику побочных эффектов это, одним словом, глупо.
Конечно, есть способы обойти это - C # также обеспечивает явное объявление этих сценариев, и WCF также поддерживает их!
Например
// use of "ref" indicates argument should be returned to
// caller, black-eye and all!
public void GetDataUsingDataContract (ref CompositeType composite)
{
composite.Key = 42;
}
Попробуй!
Надеюсь, это поможет:)