B发生特定事件,在事件中连接到A,然后把代表此事件状态的对象传递给A,A接收到对象判断对象所代表的事件状态作出对应的反应

解决方案 »

  1.   

    由于那本书写的时候是根据 .Net Framework 1.0 写的,而后来发布的 Framework 1.1 中新加入一个与 Remoting 相关的安全特性,限制了可以自动反序列化的类型。一种解决办法是应用程序的配置文件中的 Remoting 配置节,设置 typeFilterLevel= "Full"。另一种是在程序中使用代码设定对应的属性,示例代码如下:BinaryServerFormatterSinkProvider serverProv = new BinaryServerFormatterSinkProvider();// 设置类型过滤级别为 Full,也就是所有类型均可自动序列化和反序列化。
    // 有关的技术细节,请见 MSDN 帮助文档中相应的条目。
    provider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;BinaryClientFormatterSinkProvider clientProv = new BinaryClientFormatterSinkProvider();IDictionary props = new Hashtable();
    props["port"] = XXXX;HttpChannel chan = new HttpChannel(props, clientProv, provider);        
    ChannelServices.RegisterChannel( chan );
      

  2.   

    AhBian(阿扁)
     
    好像还是不行啊怎么还是一样的错误啊
      

  3.   

    未处理的“System.Security.SecurityException”类型的异常出现在 mscorlib.dll 中。其他信息: 不允许类型 System.DelegateSerializationHolder 和从中派生的类型(例如 System.DelegateSerializationHolder)在此安全级别上被反序列化。
      

  4.   


    使用应用程序配置文件设置反序列化级别
    若要使用配置文件设置反序列化级别,必须显式指定 <formatter> 元素的 typeFilterLevel 属性。虽然这通常是在服务器端指定的,但您还必须为注册来侦听回调的客户端上的任何信道指定这一属性,以控制其反序列化级别。以下示例为应用程序域中的 SoapFormatter 和 BinaryFormatter 显式地将反序列化级别设置为 Low。重点警告:
    千万不要在 Machine.config 这个文件中进行 Full 配置,因为这么做太不安全了。<configuration><system.runtime.remoting><application><service><wellknown type="ServiceType, common" objectUri="ServiceType.soap" mode="Singleton" /></service><channels><channel ref="http"><serverProviders> <provider ref="wsdl" /><formatter ref="soap" typeFilterLevel="Low" /> // Full<formatter ref="binary" typeFilterLevel="Low" /> // Full</serverProviders></channel></channels></application></configuration>另外,在程序集中声明以下特性,也是有用的,具体应用场合和技巧请见 MSDN 帮助文档的相关条目。
    [assembly:AllowPartiallyTrustedCallers]