Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, Только начинаю изучать wcf, не судите строго. Мне нужно, что бы на клиенте, при каждом вызове метода remoteObject.GetUsers() предобработать (изменить значения нескольких полей) возвращаемый им объект. Как это можно реализовать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2009, 16:22 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Клиент не возвращает, а запрашивает. Можно Behavior добавить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2009, 23:32 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
WCF, подробнее можешь обяснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 01:13 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Red Wind, Зависит от того, как вы remoteObject создаете. Если через "Update serrice reference" (автогенерация) - то можно partial класс дописать, и в нем добавить нужные функции или свойства. Если же у вас самописный remoteObject - промежуточная сборка, или полная сборка - то в ней и добавьте нужные действия. Для серверной части можете использовать серверный набор методов, а для клиентской - клиентский. Если я вас правильно понял, конечно. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 12:34 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Да, похоже правильно. Тольо я имел ввиду несколько другое. Я не хочу писать врапперы на каждый метод. А хочу создать типа фильтра, через котрый будут проходить вызовы всех методов. Или как-нибудь повесить обработчики событий на методы. Сейчас у меня сделано как написал D129. Но мне такой подход не нравиться, потому что для всех моих методов нужна однотипная обработка и количество методов постоянно ростёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 13:22 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Red WindДа, похоже правильно. Тольо я имел ввиду несколько другое. Я не хочу писать врапперы на каждый метод. А хочу создать типа фильтра, через котрый будут проходить вызовы всех методов. Или как-нибудь повесить обработчики событий на методы. Сейчас у меня сделано как написал D129. Но мне такой подход не нравиться, потому что для всех моих методов нужна однотипная обработка и количество методов постоянно ростёт. Тогда выход (красивный :) ) - только один. Если клиентам нужно одно и то же - то это проблема сервера. При обработке запроса от клиента и делайте необходимую пред-обработку. Если нужно, то в запросе передавайте серверу клиентские параметры (чтобы он выбрал тип "предобработки"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 13:39 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Думаю так не получиться:). Собственно зачем мне это понадобилось. Я делаю нейкое подобие орм с Lazy Loading'ом. У объекта может быть коллекция других объектов, и вот эту коллекцию я подгружаю Lazy Loading'ом. Что бы её подгрузить я сделал к каждого Data Transfer Objecta поле типа IDataProvider. IDataProvider это тот же интерфейс который возвращает factory.CreateChannel. И мне надо всем моим DTO пришедшим с сервера дать ссылку на remoteObject который реализует IDataProvider (см код выше), что бы они могли загружать свои коллекции с сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 15:18 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Red Wind DTO пришедшим с сервера дать ссылку на remoteObject который реализует IDataProvider (см код выше), что бы они могли загружать свои коллекции с сервера. Я сделал статический класс, и инициирую его в момент установления связи с сервером. Более того, так как клиент у меня с авторизацией (дополнительной, не протокольной) То прокси держится в обертке подсоединенного пользователя. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 15:46 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
D129, не совсем понял. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 15:55 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Red WindD129, не совсем понял. Код: plaintext 1. Это урезанный пример из кода. Код: plaintext а в нем уже Код: plaintext 1. А инициализация происходит при подключении - Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. И потом, в любом месте Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 16:06 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
А метод GetAllData что возвращает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 16:15 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Red Wind, Конкретно этот - это я просто код подпортил (чтобы лишний раз не светиться), нет у меня такого метода, А вообще есть GetBy со строкой параметров и массивом самих параметров, который возвращает из коллекции как базовый класс некий производный - сначала это было так - когда я всем формам создавал своего клиента: Код: plaintext А так теперь, когда прокси один на всю аппликацию (а он и нужен один): Код: plaintext Сама GetBy: Код: plaintext 1. 2. Это вызов динамического Linq на стороне сервера. Но это уже другая история. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 16:29 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
В общем понятно. У меня сейчас сделано похоже. Но как этот позволяет избавиться от враперов методов на клиенте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 19:04 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Red WindВ общем понятно. У меня сейчас сделано похоже. Но как этот позволяет избавиться от враперов методов на клиенте? Вы хотите сразу вот это вызывать? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 20:21 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Red WindВ общем понятно. У меня сейчас сделано похоже. Но как этот позволяет избавиться от враперов методов на клиенте? Вы хотите сразу вот это вызывать? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 20:21 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
опс.. дублянулся.... Море излечило меня от Джихада...(с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2009, 20:22 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
D129Red WindВ общем понятно. У меня сейчас сделано похоже. Но как этот позволяет избавиться от враперов методов на клиенте? Вы хотите сразу вот это вызывать? Код: plaintext Грубо говоря да. То есть предобработка без враппера. Хотя есть подозрения, что средствами wcf такого не сделать. Или я всётаки ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 14:39 |
|
||
|
WCF предобработка на клиенте
|
|||
|---|---|---|---|
|
#18+
Red Wind Грубо говоря да. То есть предобработка без враппера. Хотя есть подозрения, что средствами wcf такого не сделать. Или я всётаки ошибаюсь? У меня тоже есть такое подозрение, ну посмотрите, что там с behavior можно сделать... но мне кажется, что ссылки изнутри протокола дать нельзя. Надо же сначала обьект создать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 14:54 |
|
||
|
|

start [/forum/topic.php?fid=19&fpage=31&tid=1397859]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 152ms |

| 0 / 0 |
