Как создать вспомогательный класс на стороне клиента в Silverlight? - PullRequest
2 голосов
/ 09 января 2010

В Silverlight я вызываю службу WCF с поддержкой Silverlight асинхронно, чтобы получить, скажем, список значений для комбинированного списка.На сервере я кеширую эти значения для производительности.Но я хочу кешировать их на клиенте, чтобы избежать ненужного обхода.Теперь я понимаю, как использовать локальное хранилище для их кэширования, за исключением того, что я не хочу, чтобы все «если в локальном хранилище возвращать значения локального хранилища, в противном случае получали значения от сервера асинхронно», содержались в коде позади моего приложения xaml.Итак, я попытался переместить этот код во вспомогательный класс, но асинхронные вызовы нуждаются в обратном вызове, где я теряюсь.Я попытался передать универсальный EventHandler в мой вспомогательный класс, но метод вспомогательного класса действительно должен быть статическим.Итак, это сбивает меня с толку.Должен ли мой вспомогательный метод быть нестатичным, и если да, нужно ли мне беспокоиться о безопасности потоков?Aaarh!Слишком много вопросов!Ха-ха.В любом случае, держу пари, что какой-нибудь умный человек может подсказать мне лучший способ приблизиться к этому почти немедленно!Заранее спасибо.

1 Ответ

3 голосов
/ 09 января 2010

В прошлом я сделал одно важное приложение Silverlight. Это научило меня, что вы не должны бороться с системой.

Если я не ошибаюсь, Silverlight сам использует сетевой слой браузера для подключения к Интернету. Таким образом, вы все еще можете использовать - и Silverlight по-прежнему уважает - вещи с надлежащими заголовками контроля кэша и тому подобное.

Так что, исходя из моего опыта, я бы посоветовал вам попытаться заставить серверный компонент (сервер WCF) правильно кэшировать вывод аля стиль ASP.NET и сетевой уровень в Silverlight и хостинге браузер автоматически обработает кеширование.

Возможно, вам повезет больше с режимом RESTful WCF , поскольку вы можете использовать правильное HTTP-кэширование во всем, см. Этот пост в блоге: REST в WCF - Часть X - Поддержка кэширования и условного GET для начала.

Это также делает ваш код менее сложным, поскольку вам не нужно добавлять еще один сложный слой в вашу систему и приручать его для работы с запутанной системой привязки XAML.

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