问题标签 [dynamic-method]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
559 浏览

c# - c#动态调用方法

我有很多实体类,现在在实体类的所有属性中都需要在 getter 和 setter 中添加新功能(调用某些方法)。我想说的看起来像这样:

}

对于不同类型的字段,我需要调用不同的方法,例如refreshContents()refreshContetns("fieldName")。我正在寻找解决 IoC 和依赖注入的问题。请问你能帮帮我吗?

0 投票
2 回答
2317 浏览

c# - 使用表达式树比较对象的所有属性

我正在尝试编写一个简单的生成器,它使用表达式树来动态生成一个方法,该方法将一个类型实例的所有属性与该类型的另一个实例的属性进行比较。这适用于大多数属性,例如int,但对于(以及可能其他可为空的值类型)string失败。DateTime?

方法:

在一个DateTime?属性上它失败了:

'System.Nullable`1[System.DateTime]' 类型的表达式不能用于方法 'Boolean Equals(System.Object)' 的 'System.Object' 类型的参数

好的,所以它发现了Equals期望的重载object。那么为什么我不能将 a 传递给DateTime?它,因为它可以转换为object?如果我看一下Nullable<T>,它确实有Equals(object o).

PS:我意识到这还不是一个合适的生成器,因为它不能处理null值,但我会解决的:)

更新:Iraklis 的回答确实适用于这个特定问题,但最后我采用了一种我认为就足够了的更简单的方法:只需使用Expression.Equal. 我认为这涵盖了我 99% 的情况(不确定它是否可以在Equals不覆盖的情况下处理覆盖==,但没关系)。

0 投票
2 回答
1439 浏览

grails - Grails 域类上缺少静态 get 方法

我们在使用 grails 的生产环境中不断出现以下错误。它说给定的域类没有 get 方法。这种情况每隔几天就会在每分钟执行大约 300 次的代码上发生一次。我们无法重现它。

有没有其他人遇到过这个问题?我们正在使用 grails 1.3.6。我们域类上的 id 是 gorm 默认值。我们正在运行 sun jvm 版本 1.6.0_17-b04。

更新:

今天发生错误时,我发现了更多信息。我们正在使用 JMS grails 插件,错误发生在接收 JMS 消息的类之一中。看起来 JMS 插件在 grails 完成引导应用程序之前开始传递消息。如果 grails 启动时队列中有消息,则异常开始出现在日志中。一旦 grails 一直启动,错误就会停止并且消息会正常处理。我的猜测是 grails 中的 spring 上下文是在将动态方法添加到 Domain 类之前启动的。

0 投票
4 回答
4260 浏览

ruby - Ruby 从哈希创建方法

我有以下代码用于将哈希集合转换为我的类上的方法(有点像活动记录)。我遇到的问题是我的二传手不工作。我对 Ruby 还是很陌生,相信我已经让自己有所转变。

这些方法已创建,我可以在课堂上阅读它们,但设置它们不起作用。

0 投票
4 回答
2719 浏览

java - 这是动态调度吗?

这是动态调度:

完全在另一个班级:

我不确定这是否是动态调度,因为两个子类的行为相同?

如果不是,如果行为是根据子类定义的,它会是动态调度吗?

0 投票
1 回答
2742 浏览

ruby - 带有 Rails 关联的 Ruby 发送方法

我一直在做一个可排序的表模块的事情。我知道有些可能存在,但我想自己获得经验。我有这样的想法:

例子

我打算做类似的事情:

这适用于标题和正文,但是当涉及到Last Comment错误comment.last.title时。我试过做Post.send("comments.last.title")但是说NoMethodError: undefined method 'comments.last.title' for #<Post:0x0000010331d220>

我知道我可以做到Post.send("comments").send("last").send("title")并且有效,但我想不出如何通过获取字段并拆分 on 来动态地做到这一点。然后链接发送。谁能给我建议如何做到这一点?如果我这样做也完全错误,那么请说或指出我做类似事情的代码方向。我不是专家 ruby​​ 开发人员,但我正在尝试。

PS 上面的代码可能不起作用,因为我不在一台带有 ruby​​/rails 的计算机上进行测试,但希望你能理解这个概念。

干杯

0 投票
2 回答
119 浏览

grails - 如何在 Grails 中查找动态方法和/或动态对象的文档?

我熟悉通过AOP将动态方法添加到 Grails 中的域对象的概念。但是由于它们是动态的,您如何找到它们的文档?

即使我知道哪些 Interceptor 类可能会将这些方法应用于域对象,在哪里寻找这些方法的文档也不是很明显......

0 投票
3 回答
1510 浏览

javascript - Javascript:如何从字符串数据动态构建方法?

我有一个定义任务的 XML 文档,该任务是要对某些数据执行的操作的列表。我需要将此“任务列表”转换为可以在以后调用的 Javascript 方法,该方法又会调用一系列带有适当数据的预定义方法。您将如何实现这一目标?

重要说明:
我不担心 XML 解析。我对如何实际构建任务方法更感兴趣,包括将基本数据绑定到预定义的操作方法。这就是我正在努力的部分。

编辑:我已经修改了我的示例,使其更有趣,并希望更清晰一些。

XML:

Javascript:

当我parseTask()<task id="enter-castle">节点上调用时,这应该创建一个函数,实际上,调用时会执行以下操作:

0 投票
1 回答
2587 浏览

.net - 什么是动态方法,DynamicMethod 与 MethodBuilder 有何不同?

我在基于反射的 C# 代码中遇到过一些动态方法,但我还没有弄清楚它们到底是什么。似乎有一个DynamicMethod类允许在运行时生成和规范 CLR 方法。但是还有这MethodBuilder门课。他们似乎都在做非常相似的事情。显然“动态程序集”是AssemblyBuilder类,“动态类型”是TypeBuilder类。无论如何,它们都驻留在System.Reflection.Emit名称空间中。

MSDN 似乎有关于这个主题的宝贵的少量高级信息。因此,如果有人可以解释什么是动态方法,所有XYZBuilder类在哪里发挥作用,以及它们各自的用途,那就太好了。我应该知道的任何其他 Reflection.Emit 类型和功能也将不胜感激。

0 投票
2 回答
162 浏览

python - Dynamic runtime method in Python

I want to have access to screening_instance.get_omitted_1 ,screening_instance.get_omitted_2 upto screening_instance.get_omitted_10. Is there better way to do this without creating get_omitted_1, get_omitted_2.. methods for each case like get_omitted_%d ??

I tried creating dynamic function at runtime but had some problem with it. I tried something like this: