Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

События на сервере, обрабатываемые клиентом

713
04 мая 2006 года
Ap0k
360 / / 13.03.2006
Что-то никак не разберусь с этим, есть класс, подписываюсь на событие, а оно не возникает, вычитал, что надо делигаты серить, но как ?
Пока тут ещё почитаю, но может кто-то уже сталкивался.
273
04 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Ты про что? Про ASP.NET или .NET Remoting.
713
04 мая 2006 года
Ap0k
360 / / 13.03.2006
Цитата:
Originally posted by 3A3-968M
Ты про что? Про ASP.NET или .NET Remoting.


Remoting

273
06 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Можно преобразовать класс, в котором содержится событие в Web-сервис, но это мутно и об этом популярно написано в MSDN. Теперь об одном хитром способе - создание классов-репитеров (repeaters).
Пусть есть событие ServerEvent, его экземпляр OnServerEvent тусит на сервере. Есть также функция MyEventHandler на клиентской стороне, которую используем для подписки. Создаём репитер на клиентской стороне:
public class MyRepeater: MarshalByRefObject
{
public event ServerEvent OnServerEvent;
public void FireServerEvent(object sender, EventArgs args)
{
if(OnServerEvent!=null) OnServerEvent(sender, args);
}
}
Теперь добавляем код в клиентский класс, который хочет подписаться на событие сервака:
MyRepeater rep=new MyRepeater();
rep.OnServerEvent+=MyEventHandler;
Класс MyRepeater выступает в роли повторителя(репитера) события ServerEvent. Чтобы воспользоваться этим классом, клиент создаёт его новый экземпляр и подписывается на его событие OnServerEvent. А сервак вызывает метод FireServerEventю
273
06 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
А на счёт сериализации: обычно в .NET Remoting используется SOAP (Simple Object Application Protocol). Объект сериализуется в XML-текст. Для сериализации SOAP используется класс SoapFormatter. Сериализовать можно только поля класса, помеченный атрибутом Serializable. Поля, которые не нужно сериализовать помечаем атрибутом NonSerialized
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог