Любой сложный тип (т. Е. Больше, чем int
или string
), который используется любой из сервисных операций (методы, отмеченные [OperationContract]
), должен быть [DataContract]
.
Операции / методы службы переводятся в действия SOAP в вашем файле WSDL (язык описания веб-служб). Любые передаваемые данные должны быть чем-то, что может быть выражено в схеме XML (файл XSD). Для int, string и т. Д. Существуют базовые предопределенные типы XSD, но все, кроме этого - тип Customer
или что-либо еще, с чем вы имеете дело, должно быть определено способом, который можно преобразовать в схему XSD. .
Помните: в конце концов, все службы WCF предназначены для взаимодействия с другими системами, такими как Java, PHP и всем остальным, о чем вы могли только мечтать. Таким образом, все в контрактах на обслуживание - все операции и все данные, с которыми они работают - должны быть в формате, который можно выразить в файле WSDL (операции) и XSD (данные), которые являются общепринятыми отраслевыми стандартами.
Пока что WCF в .NET 3.5 очень явный - вам нужно определить классы и пометить их атрибутом [DataContract]
, а также любые поля или свойства в тех классах, которые вы хотите предоставить в файлы WSDL / XSD ( и, следовательно, к определению вашего сервиса) должен быть явно помечен атрибутом [DataMember]
.
Это делает вещи немного яснее?
1018 * MARC *