WCF выставить сервис с минимальными усилиями
От: Neco  
Дата: 29.05.11 18:45
Оценка:
Есть веб-приложение состоящее из визуальной части и набора классов, предоставляющих собой логические сервисы. Теперь какой-то из этих сервисов понадобился сам по себе, надо опубликовать его в виде wcf-сервиса. При условии, что существующие сервисы оперируют только POCO DTO, которые легко сериализуются, как можно не изменяя существующий код, опубликовать эту функциональность?
Большинство гайдов предлагает навесить на классы специальные атрибуты, однако так мои классы перестанут быть POCO (да и вообще не хочется засорять основные сборки всеми этими специфичностями wcf). Есть ли возможность задать это в конфигурации или как-то динамически навесить эти атрибуты? Вариант с оборачиванием всего и вся новыми классами (на которых будут все эти атрибуты) представляется очень трудоёмким, в особенности из-за DataContract и DataMember.
всю ночь не ем, весь день не сплю — устаю
Re: WCF выставить сервис с минимальными усилиями
От: 4izh  
Дата: 29.05.11 19:20
Оценка: 8 (1)
Здравствуйте, Neco, Вы писали:

N>Есть веб-приложение состоящее из визуальной части и набора классов, предоставляющих собой логические сервисы. Теперь какой-то из этих сервисов понадобился сам по себе, надо опубликовать его в виде wcf-сервиса. При условии, что существующие сервисы оперируют только POCO DTO, которые легко сериализуются, как можно не изменяя существующий код, опубликовать эту функциональность?

N>Большинство гайдов предлагает навесить на классы специальные атрибуты, однако так мои классы перестанут быть POCO (да и вообще не хочется засорять основные сборки всеми этими специфичностями wcf). Есть ли возможность задать это в конфигурации или как-то динамически навесить эти атрибуты? Вариант с оборачиванием всего и вся новыми классами (на которых будут все эти атрибуты) представляется очень трудоёмким, в особенности из-за DataContract и DataMember.

WCF может работать с Data Contract Serializer или Xml Serializer. При использовании Xml Serializer достаточно каждый класс контрокта данных пометить как Serializable. При генерции прокси c помощью svcutil нужно поменять значение switch /serializer с значения DataContractSerializer в XmlSerializer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.