Tag: 动态语言运行时

C#monkey修补 – 有可能吗?

是否可以编写一个C#程序集,在加载时会将方法从另一个程序集注入一个类? 如果是,注入的方法是否可以使用DLR的语言,如IronPython? namespace IronPython.Runtime { public class Bytes : IList, ICodeFormattable, IExpressionSerializable { internal byte[] _bytes; //I WANT TO INJECT THIS METHOD public byte[] getbytes() { return _bytes; } } } 我需要这种方法,如果可能的话我想避免重新编译IronPython。

DynamicObject隐式转换

我有一个DynamicObject的子类,我想为原始类型实现隐式转换,就像DO的显式转换方法TryConvert一样; 也就是说,无需编写多个隐式运算符[type]函数。 用法: dynamic myDynamicObject = new MyDynamicObject(“1”); int sum = 1 + myDynamicObject; // instead of int i = 1 + (int)myDynamicObject; 这是可能的,如果是的话,怎么样?

C#4.0:将动态转换为静态

这是一个与我在这里问到的另一个相关的分支问题。 我把它分开是因为它真的是一个子问题: 我很难将类型为dynamic的对象转换为另一个(已知的)静态类型。 我有一个执行此操作的ironPython脚本: import clr clr.AddReference(“System”) from System import * def GetBclUri(): return Uri(“http://google.com”) 请注意,它只是新建了一个BCL System.Uri类型并返回它 。 所以我知道返回对象的静态类型 。 现在在C#land,我正在新建脚本托管的东西,并调用此getter返回Uri对象: dynamic uri = scriptEngine.GetBclUri(); System.Uri u = uri as System.Uri; // casts the dynamic to static fine 没问题。 我现在可以使用强类型的Uri对象,就像它最初静态实例化一样。 然而…. 现在我想定义我自己的C#类,它将在动态范围内进行新建,就像我对Uri一样。 我简单的C#类: namespace Entity { public class TestPy // stupid simple test class of […]