Я устанавливаю новый сервис .NET 4.0 WCF с методом (операцией), который принимает строго типизированные типы данных, сгенерированные XSD, в качестве параметров. Это делает вещи понятными и аккуратными для клиента - клиент может работать со строгими типами и не должен думать о XML.
Однако при реализации службы WCF я бы предпочел иметь дело с данными параметров в виде документов XML (LINQ XDocument) вместо десериализованных типов объектов. Приятно, что WCF десериализуется для явных типов, но для моего универсального алгоритма удобнее и гибче работать с XML-документами, в первую очередь потому, что входящие данные полиморфны.
Я знаю, что могу просто взять объекты параметров и сериализовать их обратно в XML, но это кажется расточительным.
Я понимаю, что, возможно, я мог бы заменить строго типизированные параметры на XElement, чтобы получить то, что я хочу для удобства реализации, но это потеряет преимущества строгой типизации (проверки компилятором, intellisense, самостоятельная документация) для клиента.
Есть ли способ сказать WCF, что в моей реализации сервиса мне не нужны десериализованные объекты параметров, что я хочу использовать их как XML?
Или есть ли способ получить доступ к необработанному XML параметров, как они были до десериализации WCF их в объекты? Если я не смогу помешать WCF тратить время на десериализацию объектов по крайней мере, это позволило бы избежать затрат на повторную сериализацию их обратно в XML.