如何在IronPython中使用C#扩展方法
在现在的开发过程中为了减少单个文件的代码量,降低协同开发时文件被独占锁定的几率,我们经常会使用扩展方法。扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。
随着DLR的广泛使用,面临越来越多需要C#代码和脚本语言交互的需求。(如果你知道如何使用,建议去DLR的官方网站去看看)但是,对于扩展方法来说如果直接使用会有发现DLR无法查找到指定的方法。
Foo方法是一个扩展方法,虽然你可以不经雕琢的使用import方法导入你的DLL和类型定义,但是DLR引擎无法识别Foo方法,会引发AttributeError错误。为了解决这个问题,需要使用 Microsoft.Scripting.Runtime.ExtensionType扩展标识。
Code
构造器 第一个参数是你扩展的目标类型,第二个参数是实现扩展方法的类。