Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SL3+WCF: повторное использование типов в прокси-классах
|
|||
|---|---|---|---|
|
#18+
Итак, есть SL3 приложение, использующее WCF-службы и разрабатываемое под VS2008/SP1. Никакие фреймворки типа RIA Services не используются. Веб-проект этого SL-приложения содержит (в числе прочего): Класс OwnCompany со скалярными свойствами ID, Code и Name. Класс ClientAccount с несколькими скалярными свойствами (ID, Name etc) и одним нескалярным свойством (OwnCompany, типа OwnCompany, упомянутого выше) Service contract IClientAccounts, содержащий (в числе прочего) operation contract List<ClientAccount> GetClientAccounts(); Service contract IOwnCompanies, содержащий (в числе прочего) operation contract List<OwnCompany> GetOwnCompanies(); Два класса - ClientAccounts and OwnCompanies - реализующих вышеупомянутые интерфейсы (сервисные контракты). Я иду в клиентский проект SL-приложения и добавляю ссылки на обе службы, обзывая ссылки ClientAccounts_ServiceReference и OwnCompanies_ServiceReference, соответственно. Теперь если я открою оба сгенерированных файла Reference.cs, то увижу ДВА разных типа OwnCompany - один в файле Reference.cs расположенном под ClientAccounts_ServiceReference (и в неймспейсе MyApp.ClientAccounts_ServiceReference) и другой - в файле Reference.cs расположенном под OwnCompanies_ServiceReference (и в неймспейсе MyApp.OwnCompanies_ServiceReference). Понятно, что из-за этого у меня проблемы, поскольку это два РАЗНЫХ типа. Мне же, разумеется, хотелось бы получить один тип OwnCompany на все мои клиентские прокси-классы. Можно ли этого как-то добиться?! PS: конечно, мне известна галочка "Reuse types in referenced assemblies" в настройках службы, но я не уверен, что она меня выручит. Ведь (AFAIK) её смысл в том, чтобы и клиентская сборка, и серверная ссылались на одну и ту же сборку, а в последней были бы определены общие типы... но SL3 и FW3.5 бинарно не совместимы, поэтому смысла вытаскивать мои entity-типы в отдельную сборку нет! Далее, у утилиты svcutil вроде есть ключик "/r" - как раз для решения проблем, подобных моей, - но я не представляю, какова best practice использования этой утилиты в Студии напрямую, минуя Студийный обёртыш, вызываемый по меню "Add service reference". Подозреваю, что после запуска svcutil придётся ещё делать кучу всего руками... так ли это?! PPS: сливать два моих сервис-контракта в один - не вариант, т.к. на самом деле их не два, а больше, и получим в итоге одну службу-помойку вместо набора из нескольких небольших служб, чётко разграниченных по функционалу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2010, 09:32 |
|
||
|
SL3+WCF: повторное использование типов в прокси-классах
|
|||
|---|---|---|---|
|
#18+
Нашёл простое решение: http://10rem.net/blog/2009/07/13/sharing-entities-between-wcf-and-silverlight ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2010, 17:54 |
|
||
|
SL3+WCF: повторное использование типов в прокси-классах
|
|||
|---|---|---|---|
|
#18+
ComancheНашёл простое решение: http://10rem.net/blog/2009/07/13/sharing-entities-between-wcf-and-silverlight Угу, тоже так делаю, подсмотрел здесь - Sharing Business Logic Between The Server And Client . Кстати, делаю эти классы partial, и "довешиваю" по надобности серверными и клиентскими "собачьими хвостами". What’s New in Silverlight 4?The .NET Common Runtime (CLR) now enables the same compiled code to be run on the desktop and Silverlight without change. - надо понимать такой проблемы уже не будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2010, 17:05 |
|
||
|
|

start [/forum/topic.php?fid=21&gotonew=1&tid=1442849]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
6ms |
get first new msg: |
5ms |
get forum data: |
1ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 302ms |

| 0 / 0 |
