|
|
|
|
Автор:
|
Стас
|
|
Тема:
|
Как создать двунаправленный канал связи в Remoting
|
|
Дата:
|
8/22/2001 10:37:00 AM
|
Можно ли использовать один и тот же объект и для приема и для передачи сообщения. Сейчас я с одной и другой стороны создаю по экземпляру класса в котором зажигаю событие. Подписаться на это событие удается только с той стороны где я регестрирую этот класс методом RegisterWellKnownServiceType. С другой стороны я получаю Instance этого класса Activator.GetInstance и хочу подписаться на другое событие. При отработке этой подписки выдается ошибка "File or assembly not found".
В примерах используется метод RegisterWellKnownType но его я не нашел.
----------------------
Класс для траспортировки
public class SendEventArgs : EventArgs
{
public SendEventArgs(string WhatSend)
{
this.WhatSend=WhatSend;
}
public string WhatSend;
}
public delegate void SendStr(object sender,SendEventArgs e);
public class RemoteControl : MarshalByRefObject
{
public event SendStr sendStr;
public int SendMsg(string str)
{
SendEventArgs e=new SendEventArgs(str);
if (sendStr!=null)
{
sendStr(this,e);
}
return str.Length;
}
}
-------------------------------------
//Регистрация объекта
ChannelServices.RegisterChannel(new HttpChannel(999));
RemotingConfiguration.RegisterWellKnownServiceType(typeof RemoteControl), "Remote/Server.soap",WellKnownObjectMode.Singleton);
RCServer=(RemoteControl)Activator.GetObject(typeof(RemoteControl),"http://localhost:999/IlimsDriver/Server.soap");
RCServer.sendStr += new Ilims.SendStr(SendHandler);
------------------------------------
Потом со стороны клиента я могу лишь вызвать метод класса RemoteControl, а подписаться на его события не могу.
Хотелось бы чтобы эти две части были равноправны.
|
|
|
|