2012-05-08 2 views
1

Это несколько глупый вопрос. Но ...Как выставить данные в моем сервисе WCF

Я подвергаю службу уличным местоположениям. То, что я делал до сих пор, заключается в получении моих данных с помощью Entity Framework и анализе данных в XML с помощью XElement. Затем в моем сервисном слое я возвращаю XElement, который будет показан в моем сервисе.

Правильно ли это способ отображения данных? Поскольку WCF использует Контракт данных, который, в свою очередь, сериализуется для XML в любом случае, является ли плохая практика конвертировать его непосредственно в XML?

Я также могу вернуть список, чтобы выполнить то же самое. Тем не менее, это означает, что я не могу контролировать, как XML будет выглядеть ...

Какую наилучшую практику я могу отслеживать и где я могу прочитать хорошую информацию о лучших практиках. Ive искал на этом сайте, но есть много разных тем, когда дело доходит до лучшей практики.

Благодаря

ответ

2

Неплохая практика обмена XML, однако, я думаю, вы бы больше выиграли от обмена типами безопасных данных. Просто создайте классы и украсьте их атрибутами DataContract и DataMember. WCF позаботится о их сериализации между вашим сервисом и клиентами. Таким образом, у вас будут объекты с защищенными типами свойствами в клиентском коде, и эти данные, вероятно, будут намного легче потреблять.

+0

Поскольку я возвращаю коллекцию «Улицы», зачем мне украшать мой «Уличный» класс Data Contract? – Mage

+0

Атрибут DataContract помечает ваш тип как сериализуемый для DataContractSerializer (это то, что WCF использует для сериализации ваших данных в XML). См. [Использование Контрактов данных] (http://msdn.microsoft.com/en-us/library/ms733127.aspx) –

1

Я хотел бы использовать DataContracts ... вы не должны сериализовать его сами ... Datacontracts являются (имхо) это лучший путь.

+0

И он создаст много поддерживаемых кода. – Styxxy

+0

Но тогда, если я хочу отформатировать XML определенным образом ... как мне это сделать без создания самого XML? – Mage