阅读这篇文章和链接后,我还有 2 个问题
问题 #1
有什么标准可以让我在 c#中执行动态代码?目标类/对象必须依赖.net clr
吗?我的意思是,如果有人给我一个 Pascal DLL,我想我将无法通过动态(或将?)使用它的代码。所以:动态工作的要求是什么?
问题2
例如:在脚本对象中 - 为了增加一个 int 代码应该是:
Scriptobj.SetProperty("Count", ((int)GetProperty("Count")) + 1);
有了动态我可以做到:
scriptobj.Count += 1;
这是否意味着 scriptobj 的类程序员编写了支持DLR的代码=+1
?
ScriptobjClass : DynamicObject
{
...
public override bool TryInvokeMember (...when +=1 so do a+1....)...
}
我在这里错过了一些必不可少的东西。
是不是就像:“我们正在构建一个类,但我们也应该让 .net DLR 访问它——所以让我们编写更多代码,以便这个类也支持 允许 .net 用户通过 dlr 访问这个类的操作”?