我有一个包含事件的远程类。但是当我尝试在客户端为这些事件设置处理程序时,我收到异常。我的代码如下:
//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
System.DelegateSerializationHolder
及其派生类型(例如System.DelegateSerializationHolder
)不允许在此安全级别反序列化。
我做错了什么?
答案 0 :(得分:6)
http://msdn.microsoft.com/en-us/library/61w7kz4b(v=vs.80).aspx
在.NET Framework中,分布式通信(远程处理)的默认安全级别很低。这会影响将用户定义的对象类型传递给远程方法。在某些情况下,您可能需要将默认安全级别调整为完全,以允许对象的序列化。
如果你在ASP.Net中,这里是如何设置安全性(信任)级别: