1、不同格式的第三方采用不同的接口,避免使用一个接口接收数据,造成解析过于复杂混乱。
2、第三方产生数据时,post一个消息给接口,接口异步读取数据

解决方案 »

  1.   

    通常,如果是“异步方法”,我会使用“回调参数”方式。只有独立的服务控件/组件,因为它抛出的事件跟什么“即时调用”无关,才用事件通知方式。比如说你使用 DropDownlist 控件,它的 SelectedItemChanged 事件不是因为你调用它的某个方法而触发,而是用户手工操作而触发,这时候才使用事件。不是什么都用事件!
      

  2.   

    回调跟事件的使用场景有不同。例如写public interface MyGateWay
    {
        void Method1(string p1, int p2, Action<string> callback);
        void Method2(string p2, Action<DemoDataType> callback);
        EventHandler<MyDataSourceArguments> ServerPushed1;
        EventHandler<byte[]> ServerPushed2;
    }这里:有两个方法,传入参数然后等对方返回数据时则自动回调(这跟你使用 jQuery 之类的完全一样,所以其实没有什么技术含量)。使用回调方法,当然可以是用来与预先请求命令进行“配对的”。另外有两个事件,第一个是当接听到远程主机发来的“修改数据源”任务时触发此事件;第二个则是接受到远程主机发来的消息,但是找不到对应的命令类型时,直接把接收到的命令的 byte[] 字节抛出来。使用事件,当然是没有预先请求与之“配对”的。你可以看到,回调跟事件,有不同的用处。