如何在.NET Remoting中远程事件?

Vas*_*sya 2 .net c# events .net-remoting

我有一个包含事件的远程类.但是当我尝试在客户端为这些事件设置处理程序时,我收到异常.我的代码看起来像:

    //In common library
    class RemoteClass : MarshalByRefObject
    {
    public event EventHandler SomeEvent = null;

    public void SomeMethod () {}
    }

    //On client-side
    RemoteClass r = (RemoteClass) RemotingServer.Connect (typeof(RemoteClass), "myURL");

    r.SomeMethod (); //Everything is OK here.

    r.SomeEvent += delegate (object o, EventArgs e) { }; //Exception:Type 
Run Code Online (Sandbox Code Playgroud)

System.DelegateSerializationHolder并且System.DelegateSerializationHolder不允许在此安全级别反序列化从其派生的类型(例如).

我做错了什么?

Mer*_*ham 6

http://msdn.microsoft.com/en-us/library/61w7kz4b(v=vs.80).aspx

在.NET Framework中,分布式通信(远程处理)的默认安全级别很低.这会影响将用户定义的对象类型传递给远程方法.在某些情况下,您可能需要将默认安全级别调整为完全,以允许对象的序列化.

如果你在ASP.Net,这里是如何设置安全(信任)级别:

http://msdn.microsoft.com/en-us/library/ff648344.aspx