Re[2]: Remoting и Delegate в очередной раз
От: wraithik Россия  
Дата: 12.10.05 19:59
Оценка:
Здравствуйте, mamoNT2005, Вы писали:

NT>Здравствуйте, wraithik, Вы писали:


W>>может кто знает как решать проблему.


NT>Избавиться от необходимости иметь клиентскую сборку на сервере можно так:

NT>в общей сборке создать класс, который будет ретранслировать через себя события, возникающие на сервере. Например так:


NT>
NT>    public class EventRepeater
NT>        : MarshalByRefObject
NT>    {
NT>        public override object InitializeLifetimeService() // Не забываем
NT>        {
NT>            return null;
NT>        }

NT>        public event EventHandler SmthChanged;
NT>        public void OnSmthChanged()
NT>        {
NT>            if (SmthChanged != null)
NT>                SmthChanged();
NT>        }
NT>    }
NT>


NT>Теперь клиент подписывается не напрямую к серверу, а через репитера.



NT>
NT>EventRepeater rep = new EventRepeater ();
NT>server.SmthChanged += new EventHandler (rep.OnSmthChanged);
NT>rep.SmthChanged += new EventHandler (this.ClientMethod)
NT>


NT>То есть сначала подписывает репитра к серверу, а потом себя к репитеру. Поскольку EventRepeater находится в общей сборке, клиентская сборка серверу больше не нужна


Спасибо. Этот способ я знал.
Походу больше никак. Жаль.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.