DataContracts не являются «решением»;DC - один из возможных подходов к сериализации сообщений.хотите ли вы использовать DC, зависит от того, как XML должен выглядеть или может выглядеть, а также от того, как вы хотите или должны отображать объекты в памяти программы на сообщения (XML-документы или фрагменты).
В частности, если вы хотите или нуждаетесь в атрибутах xml в сообщениях, то DataContracts, вероятно, не является подходящим способом.
DC может поддерживать этот тип входного сообщения:
<request>
<flavor>7</flavor>
<param>eiueuie</param>
</request>
обратите внимание, что все данные хранятся в виде элементов xml.DataContract не будет работать для сообщений такого типа:
<request flavor='7'>
<param>eiueuie</param>
</request>
..., в которых любой данных сообщения хранится в атрибутах xml.Если вы хотите использовать атрибуты XML, то вы, вероятно, хотите использовать XML Serializer.Если вам все равно, так или иначе, DC, вероятно, будет в порядке.
НО, сериализатор Xml не может отобразить частные поля или свойства в элементы XML, в то время как DC может.Итак, если ваша объектная модель требует этого, вы не можете использовать XML Serializer и вам следует использовать DC.
Чтобы узнать больше о компромиссе между DC и XMLS, прочитайте это .
Сказав все это, решение о том, использовать DC или нетэто только одна часть вашего дизайна.Вам также необходимо решить, хотите ли вы полную поддержку конверта SOAP (которая допускает такие вещи, как подписи сообщений и т. Д.) Или вам нужен более простой формат сообщения «REST», который, вероятно, лучше называть «простым старым XML».
А также существуют такие вещи, как создание экземпляров, размещение и активация (использовать IIS или сам хост?), Ведение журнала / аудит, безопасность (аутентификация и авторизация) и так далее.
Итак, WCF может работать для вас, для любого типа клиента , но выбор использования DataContracts или нет - это всего лишь часть головоломки.