Remoting中事件跨程序传递的问题。服务器端的事件传递到客户段!!!顶也给分~~~~~
xiyun 2006-06-04 11:48:36 希望能实现订阅服务器端的事件的功能,但是系统提示安全异常"{"不允许类型 System.DelegateSerializationHolder 和从中派生的类型(例如 System.DelegateSerializationHolder)在此安全级别上被反序列化。"}"。
出错的地方的代码:
r_busitype.BusiTypeChanged += new ServerEvent(serverEvents.ServerEventHandle);
serverEvents.EventRaise += new ServerEvent(serverEvents_EventRaise);
//r_busitype 是服务器端的远程对象,当其他客户端修改了BusiType后就会激活BusiTypeChanged 事件,serverEvents是类EventPasser 的一个实例。现在是执行到第一行时就提示错误了。
我也实现了一个事件重现器
public class EventPasser : MarshalByRefObject
{
/// <summary>
///
/// </summary>
public event ServerEvent EventRaise;
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void ServerEventHandle(object sender, PassableEvent e)
{
if (EventRaise != null)
EventRaise(sender, e);
}
}
[Serializable]
public class PassableEvent : EventArgs
{
}
客户端和服务器端的配置文件也设置了序列化级别
<channels>
<channel ref="tcp" port="0"/>
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full" />
</serverProviders>
</channels>
环境是.net 2.0。我想请教下我还有什么地方没有作对么?谢谢了。