之前写的那篇<<一个极其简单的在线C#IDE例子>>, 貌似很合大众胃口.这次我又想到一个种运行时编译执行代码的应用, 不过比较简单就是.

    比如Math.dll程序集有个计算器的类

运行时编译执行代码的又一应用, 仅供娱乐namespace Account
}


    现在我们的程序当中, 要使用计算器的功能.但是我们还并没有具体的Calcualtor类, 所以我们用一个接口来表示:

    }


    在依赖注入中,经常会这么做.但是,这时候的Calcualtor类并没有实现ICalcualtor这个接口.怎么办?看测试:

运行时编译执行代码的又一应用, 仅供娱乐using Microsoft.VisualStudio.TestTools.UnitTesting;
运行时编译执行代码的又一应用, 仅供娱乐
运行时编译执行代码的又一应用, 仅供娱乐
namespace TestDynamicObjectPool

    使用ICalculator就可以调用到Calculator类的方法实现了.
    实现的原理很土很简单, 就是动态生成一个代理类:

运行时编译执行代码的又一应用, 仅供娱乐using System;
运行时编译执行代码的又一应用, 仅供娱乐
using System.Collections.Generic;
运行时编译执行代码的又一应用, 仅供娱乐
运行时编译执行代码的又一应用, 仅供娱乐
namespace DynamicProxy
}

    这种方法的拘束很大, 比如目标类必需可以被继承,要有无参构造函数等.这里纯粹是说个想法, 仅供娱乐.

   完整代码下载 : DynamicObjectPool.rar

相关文章:

  • 2021-06-08
  • 2022-12-23
  • 2021-08-07
  • 2021-08-06
  • 2021-10-15
  • 2022-12-23
  • 2021-06-15
猜你喜欢
  • 2021-11-14
  • 2021-07-14
  • 2021-07-30
  • 2021-11-02
  • 2022-12-23
  • 2022-12-23
  • 2021-06-29
相关资源
相似解决方案