|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.10.2011, 23:23 | #1 |
Новичок
Джуниор
Регистрация: 18.10.2011
Сообщений: 1
|
WCF. Не передается параметр от службы к клиенту
Добрый день!
Есть 3 приложения:сервис и 2 клиента.Первый клиент отправляет на сервис строку, и если второй клиент подключен и подписан на рассылку, то эта строка сразу же ему отправляется. И эту строку нужно вывести в текстбокс.Только вот по завершении работы callback-функции это строка становится пустой... Служба: [ServiceContract] public interface IService { [OperationContract(Name="SendMessage ToService")] void SendMessage(string str); } [ServiceContract(CallbackContract = typeof(IEvents))] public interface ISubscribe { [OperationContract] void Subscribe(); [OperationContract] void Unsubscribe(); } public interface IEvents { [OperationContract(IsOneWay = true)] void PublishXDocument(string str); } public class Service : IService, IConnectionState, ISubscribe { delegate void Publisher(string str); static Publisher PublishEvent; static SendToClient content; public void SendMessage(string dataFromPublisher) { FireEvent(dataFromPublisher); } public void Subscribe() { content = new SendToClient(); content.callback = OperationContext.Current.GetCallbac kChannel<IEvents>(); PublishEvent += content.Send; } public static void FireEvent(string dataToSubscriber) { try { PublishEvent(dataToSubscriber); } catch { Console.WriteLine("no subscribers"); } } public class SendToClient { public IEvents callback = null; public void Send(string dataToSubscriber) { callback.PublishXDocument(dataToSub scriber); } } } На первом клиенте выполняется: public partial class Client1Form : Form { ServiceClient client = new ServiceClient("EndPt1"); client.SendMessageToService(text); } на втором клиенте: public partial class Client2Form : Form, ISubscribeCallback { static InstanceContext context = new InstanceContext(new Client2Form()); static SubscribeClient subscribeClient = new SubscribeClient(); public void PublishXDocument(string publishingData) { GetData(publishingData); } private void GetData(string publishingData) { textBox1.Text = publishingData; } } И вроде в textBox1.Text записываеся приходящая строка, но когда функция PublishXDocument заканчивает выполнение - publishingData и textBox1.Text становятся пустыми.Это мой первый проект на WCF.Помогите разобраться пожалуйста!!! |
19.10.2011, 20:38 | #2 |
:D
Форумчанин
Регистрация: 26.09.2010
Сообщений: 570
|
Код:
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Аргумент в функцию потока не передается | Silly Student | Win Api | 3 | 19.10.2011 12:42 |
Не передается значение переменной в PHP | w_wolf | Помощь студентам | 3 | 08.02.2011 20:00 |
не передается картинка TCPClient/Server | Lokos | Работа с сетью в Delphi | 1 | 05.10.2010 08:14 |
WCF - ошибка при запуске службы | Дамир | Общие вопросы .NET | 1 | 12.04.2010 23:35 |
Почему управление передается в процедуру? | Sergee | Общие вопросы Delphi | 13 | 15.01.2009 01:37 |