zoukankan      html  css  js  c++  java
  • 某项目要调用现有的100多个DLL 五 自动封装跨域调用的逻辑

    上文说到了可以通过继承的方式实现Class的可序列化

    那么目前准备采用的方案如下

    1.为所有输入输出参数 实现可序列化 (原来已经序列化的就不必了)

    2.在本域生成一个代理类, 负责封装所有输入参数 并调用远程域的方法

    3.在独立域生成一个代理类,负责接收输入参数 调用实际的方法,并且包装返回值

    调用流程

       本身代码 -> 本地代理类 -> 封装输入参数 - > 跨域访问 -> 接收输入参数 并调用实际的DLL -> 封装返回值 -> 本地代理类接收返回参数

    一共要动态生成3个Assembly

    一个保存 本域的代理类程序集

    一个保存 独立域的代理类程序集

    还有一个保存所有的实体类 (输入输出参数)

    动态生成实体类包括以下内容 (以下说的Class都是不可序列化的)

     所有独立的Class 

     所有Class的不可序列化的公开属性和公开字段

     所有集合类中不可序列化的部分

    下一篇文章介绍 如何使用CodeCompiler 动态生成程序集

  • 相关阅读:
    Pascal's Triangle II
    Pascal's Triangle
    Best Time to Buy and Sell Stock II
    Best Time to Buy and Sell Stock
    Populating Next Right Pointers in Each Node
    path sum II
    Path Sum
    [转载]小波时频图
    [转载]小波时频图
    [转载]Hilbert变换及谱分析
  • 原文地址:https://www.cnblogs.com/PurpleTide/p/1955607.html
Copyright © 2011-2022 走看看