Здравствуйте, 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 находится в общей сборке, клиентская сборка серверу больше не нужна
Спасибо. Этот способ я знал.
Походу больше никак. Жаль.