Когда мне нужен datacontract в WCF, и было бы лучше использовать простой тип? - PullRequest
1 голос
/ 05 января 2011

У меня возникли проблемы при разработке службы WCF.В основном мне нужен сервис для получения XML-документа.Xml сопоставляется с классом, созданным из xsd.exe.Первоначально у меня просто было это:

public void AddDocument(string xmlString)

Тогда я бы десериализовал XML в сгенерированный класс.Мне сказали, что это плохая идея, потому что я делаю дополнительную работу, так как wcf выполнит сериализацию для меня, если я просто использую класс документа в качестве параметра, подобного этому:

public void AddDocument(MyGeneratedClass document)

Я новичок в WCFно если я сделаю это таким образом, я подумал, что мне придется создать контракт данных для MyGeneratedClass.Сгенерированный класс содержит более 20000 строк, так что это займет вечность.

Нужен ли DataContract?В любом случае, я думаю, что что-то упустил, поэтому я надеюсь, что это имеет смысл, и если кто-то может указать мне правильное направление, я был бы очень признателен.Спасибо!

1 Ответ

2 голосов
/ 05 января 2011

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

Как правило:

  • Если вам нужно передать более нескольких (менее 5) простых типов - используйте какой-то объект Request, в противном случае ваш вызов станет громоздким.

  • Если вынеобходимо вернуть более одного значения простого типа, использовать объект Response для объединения этих значений.

Я бы постарался избежать отправки и получения XML и проанализировать его - попытатьсяотправлять туда и обратно по-настоящему хорошо структурированные (данные) объекты - с ними гораздо проще работать, безопаснее всего и все!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...