Обеспечивает ли контракт сообщений совместимость между различными языками?
Я читаю об услугах WCF. Я новичок в услугах WCF. Я читал, что WCF обеспечивает совместимость. Я хочу знать, в каком контексте это обеспечивает совместимость. Обеспечивает ли это взаимодействие в контексте использования веб-сервисов.net wcf с любого другого языка (например, php) или для каких-либо иных целей. Я прочитал следующую статью.
http://blogs.msdn.com/b/drnick/archive/2006/11/27/mixing-message-contract-attributes.aspx
Таким образом, если мы предоставим OperationContract для всех методов в веб-сервисе wcf, передав или возвратив MessageContract для какого-либо метода и DataContract для какого-то метода, что произойдет в php или любом другом языке? * Доступен ли метод, имеющий DataContract в качестве параметра или возвращаемого типа, в php или любом другом языке? Или метод, имеющий MessageContract в качестве параметра или возвращаемого типа, доступен на php или любом другом языке? или оба доступны на php или любом другом языке *
2 ответа
По крайней мере, messagecontract должен обеспечить работоспособное решение, использующее PHP, согласно http://cgeers.com/2009/08/20/using-wcf-services-with-php-5.
И я могу найти аналогичный пост для DataContracts на http://www.rizalalmashoor.com/blog/calling-a-wcf-service-from-php/.
И сравнивая способ, которым эти два типа контрактов потребляются из PHP, я думаю, что это не создаст проблемы при объединении этих двух в одном и том же сервисе WCF.
Обеспечивает ли это взаимодействие в контексте использования веб-сервисов.net wcf с любого другого языка (например, php) или для каких-либо иных целей.
Функциональная совместимость означает возможность вызова службы WCF с платформы, отличной от.NET, при условии, что клиент использует тот же протокол веб-службы, что и ваша служба. Обратите внимание, что вы можете использовать много типов привязок для вашей службы WCF, но только BasicHttpBinding, WSHttpBinding и WSDualHttpBinding поддерживают совместимость. Для получения дополнительной информации обратитесь к статье MSDN Протоколы веб-сервисов, поддерживаемые привязками совместимости, предоставляемыми системой.
Доступен ли метод, имеющий DataContract в качестве параметра или возвращаемого типа, в php или любом другом языке? Или метод, имеющий MessageContract в качестве параметра или возвращаемого типа, доступен на php или любом другом языке? или оба доступны на php или любом другом языке
Короткий ответ: да. Например, если вы используете BasicHttpBinding, все становится XML, и библиотеки, доступные для этого языка, могут преобразовать XML в нечто родное для языка. Например, PHP SoapClient преобразует тип возврата DataContract во встроенный объект stdClass (см. Результат Echo xml из службы wcf в php?).