问题标签 [dynamic-class-creation]

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 回答
2066 浏览

c# - CSharp:我如何动态调用一个类(带有构造函数)及其方法?

我已经阅读了两天的反射示例,但我似乎无法将所有内容拼凑起来以满足我的需要。事实上,我以为我在使用反射,直到我注意到我的“使用 System.Reflection”是灰色的。:-)

我有一个 xml 文件,其中包含我的类名和其中包含的方法。方法的顺序甚至名称都可以更改。一旦我读到它们,我希望能够执行它们。看起来很简单。

我有以下测试代码:

tb 为空。我只是想努力获得正确的 API 来创建类,但我什至不知道我所拥有的其余部分是否有效。

有什么建议么?

谢谢

编辑:添加命名空间。Activator.CreateInstance 正在返回找不到构造函数的错误。它就在那里。

0 投票
3 回答
458 浏览

python - 在运行时创建类时,使用 exec 而不是 type() 有什么优势?

我想在运行时在 python 中动态创建类。

例如,我想复制下面的代码:

...但我希望动态创建 Foo1、Foo2、Foo 类(即:在执行期间而不是在首次编译时)。

实现此目的的一种方法是使用type(),如下所示:

我也可以用 来实现它exec,如下所示:

的使用exec并不适合我(正如我所期望的那样,很多阅读此问题的人都不会使用),但这正是execpython类的实现方式(参见这一行)。同样非常相关的是类的创建者(Raymond Hettinger)对here的这种使用的辩护。在这个辩护中,声明“命名元组的一个关键特征是它们完全等同于手写类”,这可能意味着使用不如使用...collections.namedtuple()exec type()exec

有区别吗?为什么使用execvs type()

我希望答案可能是两种方式都是相同的,只是namedtuple实现中有很多 namedtuple 变量贯穿其中,并且通过为所有方法动态生成闭包来执行此操作会使代码变得笨拙,但我想知道如果还有更多的东西。

关于我对 的不适exec,我确实认识到,如果不受信任的各方无法向其中注入恶意代码,那应该没问题……只是确保这让我感到紧张。

0 投票
1 回答
2225 浏览

java - Selenium Webdriver 和使用泛型的类型构造函数 - 怎么做

将 PageFactory 设计与 selenium 2 webdriver 一起使用的最佳方法是什么,但是当页面并不总是加载预期的页面时,如何创建新的意外页面?

// 如果是 submitButton.Click() 之后返回的页面;是 Confirmation.aspx 页面吗?我不能 100% 确定,这取决于以前的要求,例如签到然后说需要多少乘客,但这并没有存储在此页面中。

我可以使用某种类型的构造函数吗?

所以我可以做如下的事情:

在另一个班级我可以使用这样的东西吗?我从来没有像这样使用过泛型,我正在考虑使用 Java Class.forName(name); 之类的东西。

我主要担心的是我无法在单元测试中将我的函数链接在一起,如下所示:

关于我应该如何做到这一点的任何建议?

0 投票
3 回答
865 浏览

java - java泛型与使用Class.forName()动态加载类

假设我正在制作一个名为 Government 的课程。政府有官员、部长、部门等成员。我为每个成员创建一个界面,任何特定的政府都可以根据自己的喜好定义它们。

政府类中的主要方法被调用Serve(Request req)。假设查询率非常大(每秒 1000+ 次查询)。

要创建政府,我可以:
1)使用 Java 泛型编写Government<Class Minister, Class Officer, ...>,任何特定的政府实现都需要在 java 代码中创建自己的政府对象,并main()具有可部署的 jar。

2) 有一个配置文件,指定官员、部长等的类名,每当Serve()调用时,它使用Class.forName()Class.newInstance()创建类的对象。任何新政府只需要为其成员编写类和配置文件。main()所有政府都有一个单一的。

从纯粹的性能角度来看 - 哪个更好,为什么?我主要担心的是:

a) 是否forName()每次都执行昂贵的搜索?假设一个非常大的类域。

b) 我们是否错过了可能在案例 1 中执行的编译器优化,但在动态类上没有在案例 2 中执行?

0 投票
4 回答
14620 浏览

delphi - 如何在delphi中动态创建组件,例如TLabel或TEdit ...等

使用德尔福 2010

0 投票
1 回答
282 浏览

python - 使用动态python类定义和amfast动态类映射和代码生成生成ActionScript类

我有一个包含对象层次结构的 xml 片段:

我使用 ElementTree xml 表示来解析 xml:

我递归地遍历 xml_doc 元素,使用“namedtuple”构建类定义:

像这样称呼它:

使用 dump,StackOverflow 上其他地方的一个函数:

您可以致电:

看看(我手动格式化了间距):

所以我们知道代码实际上是在生成一个类。现在,如果您使用 amfast DynamicClassMapper 和代码生成器:

你得到一个文件,RootObj.as:

这显然缺少所有属性等等。有没有办法利用这种编码方法来输出一个实际包含正确类定义的 ActionScript 文件?

0 投票
1 回答
149 浏览

structuremap - 在结构图中给出方法名称而不是具体的类名称

我有一个类 ScreenParameter(实现 IScreenParameter),它以 Windows 形式存储所有表单值。当用户填充所有字段并单击按钮时,将启动此类。业务层中的类在其构造函数中等待 IScreenParameter。我正在使用结构映射来注入接口,并且需要在其上下文中创建它。我有一个创建和填充界面的方法(GetScreenParameters)。我想在配置结构映射时给出方法名称而不是创建类并尝试了这个。

但它不起作用。你能帮助如何实现这一目标吗?

0 投票
1 回答
664 浏览

c# - 在运行时创建动态类

任何人都可以有在运行时创建动态类的想法吗?我有一个dictionary<string,object>包含数据表的所有列的数据类型我的计划是创建一个基于字典的动态类。表示数据表的列名是类的属性。创建list<dynamic class>并绑定到网格后

如果您有代码,这将是极大的帮助

0 投票
2 回答
1626 浏览

c# - 我可以动态/动态地从接口创建一个类,nHibernate 会支持这种做法吗?

我已经做了一些谷歌搜索,但我还没有找到解决方案,甚至没有找到我的问题的明确答案。

问题很简单。我想为动态命名/创建的对象的每个实例动态创建一个表。然后每个表将包含特定于对象的记录。我知道这本质上是一种反模式,但这些表理论上可能会变得非常大,因此将所有数据放在一个表中可能会导致性能问题。

一个更具体的例子:

我有一个包含事务集合的基类/接口 ACCOUNT。对于使用我的软件的每家公司,我都会创建一个新的具体版本的类,BOBS_SUB_SHOP_ACCOUNT 或 SAMS_GARAGE_ACCOUNT 等。所以类的标识值是类名,而不是类中的字段。

我正在使用 C# 和 Fluent nHibernate。

所以我的问题是:

  1. 这有意义还是我需要澄清更多?(或者我是否正在尝试做一些我真的不应该做的事情?)
  2. 这种模式有名字吗?
  3. nHibernate 支持这个吗?
  4. 您知道我可以阅读的有关该模式的任何文档吗?

编辑:我想了更多,我意识到我真的不需要动态对象。我所需要的只是一种通过 NHibernate 将具有某些标识符的对象绑定到表的方法。例如:

这应该足以满足我的需要,假设 NHibernate 允许它。我试图避免这样一种情况,即如果帐户表上出现大量交易,一张巨大的表就会被击败。如果所有帐户都在一张桌子上……那可能很难看。

先感谢您。

0 投票
2 回答
469 浏览

ruby - 使用方法 def 的动态创建字符串的 eval 创建类

我有一个奇怪的情况,其中的代码:

... 适用于 IRB(ruby 1.9.3)但不适用于代码。我已经尝试过使用和不使用“class Foo”包装我的方法。至少可以说,这令人沮丧。我可以将字符串解析器的内容直接复制到 irb 中的变量解析器中,然后使用上面的行创建类,我的方法都在那里,但是当我在代码中这样做时,它们不是。