Я знаю, що кращим способом серіалізації складних типів у WCF є використання DataContracts, але чому це так?
Якщо я повертаю DataTable замість DataContract з моїх сервісних операцій, чи WCF використовує клас XmlSerializer замість DataContractSerializer за замовчуванням?
І нарешті, у цій темі: DataTable не приймається svcutil - службою WCF
Чи вважаєте ви, що проблема полягає в тому, що, повертаючи DataTable, типи CLR не відображають правильно визначення визначень схеми XSD?
Відповіді:
6 за відповідь № 1Основна проблема використання DataTable у вашомудоговір на обслуговування - це не технічна проблема, а проблема дизайну. Якщо ваша послуга використовує DataTable в договорі, ви порушуєте принципи проектування SOA, використовуючи стандартизовані контракти та нещільне з'єднання.
Це тому, що якщо служба повертає таблицю даних,в договорі не вказано, які стовпці містять DataTable. Це змусить споживача послуг мати певні знання про внутрішню роботу постачальника послуг, що зробить систему щільно з'єднаною.