Я не знаю ни одного способа сделать это. Если ваш Event
большой, этот дополнительный шаг , вероятно, не повредит вам, и, по крайней мере, он локальный - и если он имеет значение , ваша основная проблема - пропускная способность. , который будет одинаковым в любом случае.
Вы можете выставить данные как XmlElement
в сообщении, что позволит избежать этого шага - но тогда вызывающим абонентам необходимо знать, чтобы распознать их как Event
(поскольку все, что они увидят в mex / wsdl, это кусок блуждающих X).
В конечном счете, одна из причин, по которой он это делает, заключается в том, что WCF - это модель на основе , и сериализатор может на самом деле поменяться множеством приемов - так что с точки зрения обычной модели WCF факт то, что у вас есть xml, не имеет значения: это может на самом деле не быть чем-то вроде того, что происходит по проводу. Ему нужен объект, чтобы он мог попросить фактический сериализатор выполнить эту работу.