#silverlight #wcf #data-binding #duplex
#silverlight #wcf #привязка данных #дуплекс
Вопрос:
Я искал это довольно долго, и я действительно не нашел ничего, что объясняло бы, как извлекать данные через дуплексное соединение для Silverlight (pollingHttpDuplex).
Я настроил базовое приложение sub / pub с помощью duplex.
Теперь я хотел получить список тем, к которым подключены пользователи. Моей первой мыслью было настроить простой DataContract (только с одним полем topicName), затем получить данные из Dicionary, которые я использовал для хранения текущих тем. Итак, в итоге я получаю что-то вроде этого:
[OperationContract]
public List<Topic> GetTopicList()
{
List<Topic> topicList;
topicList = (from p in _sessionIDTopic
select new Topic
{
TopicName = p.Value
}).ToList<Topic>();
return topicList;
}
[DataContract]
public class Topic
{
[DataMember]
public string TopicName { get; set; }
}
Я здесь делаю что-то не так. Потому что большой вопрос в том, как отправить это клиенту (Silverlight 4) и привязать его к элементам управления?
Также дуплекс необходим для приложения. Менять его на что-либо другое — не вариант.
Комментарии:
1. Должен быть так называемый CallbackContract. В этом интерфейсе вы можете определить любые методы, которые вы можете вызывать на стороне сервера, и они будут выполняться на стороне клиента.
Ответ №1:
Использование дуплексного соединения здесь никак не влияет на то, как вы передаете данные клиенту. Указанный вами пример выглядит как простая односторонняя связь. Для этого вашему клиентскому проекту требуется ссылка на службу на сервере, и сгенерированный прокси-сервер предоставит методы, необходимые клиенту для доступа к операциям на сервере.
Я думаю, вам следует начать с рассмотрения простого примера проекта WCF, чтобы понять, что я имею в виду. Если это не ваша проблема, пожалуйста, перефразируйте вопрос.