Перехват событий RealProxy
Я пытаюсь перехватить событие (в этом случае действие), но не могу вернуться с прокси-сервера без исключения. Вот идея: у меня есть интерфейс событий, они не подписаны на стороне клиента. Поэтому, когда я пытаюсь поднять событие на стороне клиента, я ловлю это событие в прокси и отправляю на мой удаленный сервер имя этого события и его параметры, и я хочу просто вернуться из прокси. Вот мой образец
public interface IMyEvents
{
Action OnPing { get; set; }
}
public class Proxy : RealProxy
{
Type type;
public Proxy(Type type)
: base(type)
{
this.type = type;
}
public override IMessage Invoke(IMessage msg)
{
var call = (IMethodCallMessage)msg;
string MethodName = (string)msg.Properties["__MethodName"];
object[] parameters = (object[])msg.Properties["__Args"];
// Send Command to server
// SendData(MethodName, parameters);
// tell the invoker that everything's fine
return new ReturnMessage(null, null, 0, call.LogicalCallContext, call);
}
}
public class Test
{
public Test()
{
Proxy proxy = new Proxy(typeof(IMyEvents));
Events = (IMyEvents)proxy.GetTransparentProxy();
}
public readonly IMyEvents Events;
}
class Program
{
public static void Main(string[] args)
{
Test t = new Test();
t.Events.OnPing(); // NullReferenceException
}
}