По умолчанию WCF использует DataContractSerializer
в режиме basic-http и NetDataContractSerializer
в некоторых двоичных режимах tcp. В действительности вы не можете внедрить конвертер для каждого типа / свойства, но вы можете заменить сериализатор, добавив «поведение» в контракт (с обоих концов). Хотя это возможно, это не очень переносимо, и вам бы советовали придерживаться обычной раскладки, чтобы «mex» понимал все правильно.
См. Здесь для примера такого поведения.
AFAIK, наиболее вероятной альтернативой (для пользовательской сериализации) было бы реализовать IXmlSerializable
и делать все самостоятельно - не весело.