Здравствуйте, wraithik, Вы писали:
W>может кто знает как решать проблему.
Избавиться от необходимости иметь клиентскую сборку на сервере можно так:
в общей сборке создать класс, который будет ретранслировать через себя события, возникающие на сервере. Например так:
public class EventRepeater
: MarshalByRefObject
{
public override object InitializeLifetimeService() // Не забываем
{
return null;
}
public event EventHandler SmthChanged;
public void OnSmthChanged()
{
if (SmthChanged != null)
SmthChanged();
}
}
Теперь клиент подписывается не напрямую к серверу, а через репитера.
EventRepeater rep = new EventRepeater ();
server.SmthChanged += new EventHandler (rep.OnSmthChanged);
rep.SmthChanged += new EventHandler (this.ClientMethod)
То есть сначала подписывает репитра к серверу, а потом себя к репитеру. Поскольку EventRepeater находится в общей сборке, клиентская сборка серверу больше не нужна