问题标签 [createinstance]

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

c# - C# 私有 T CreateObject()

我想创建一个具有动态参数的对象实例,例如

我想在没有“startconfig”之类的修复类型的情况下尝试它。但它仍然不起作用,你能帮帮我吗?

这无论如何都不起作用,原因:找不到他的类型或名称空间名称“类型/名称空间”(您是否缺少 using 指令或程序集引用?)

这发生在铸造 ser.Deserialize(sr);

0 投票
1 回答
3126 浏览

c# - 如何创建存储在对象变量中的对象的新默认实例?

下面的示例显示了意图。该示例正在遍历一个对象数组,并创建一个加载了默认值的相同类型的数组。值本身不需要从一个列表复制到下一个列表。这是列表的“类型克隆”。

下面的代码会为 Activator 产生以下错误:

“System.Int32 不是 GenericTypeDefinition。MakeGenericType 只能在 Type.IsGenericTypeDefinition 为真的类型上调用。”

Activator、CreateInstance 和 MakeGenericType 的细节还是让我有点困惑。

如何更改代码以避免错误?

任何建议,将不胜感激。

预期的输出将是:

  • System.Int32
  • 系统字符串
  • MyNamespace.clsMyClass

结果值为:

  • b[0] = 0
  • b[1] = ""
  • b[2] = 新的 clsMyClass
0 投票
2 回答
1933 浏览

c# - 是否可以在不运行类中的任何代码的情况下创建类的实例?(没有 ctor,没有字段初始化)

我创建了一个引擎,它接受实现接口的 3rd 方插件 (DLL)。

由于我无法控制插入的代码,因此我希望能够从正确的类(GetTypes 循环直到找到接口类)运行 1 个特定方法(从接口)。

由于任何人都可以创建在Activator.CreateInstance上执行的漂亮的构造函数代码,因此我可以使用FormatterServices.GetUninitializedObject来解决这个问题。但这在类中的字段上初始化代码时无济于事。

两种方式(CreateInstance/ GetUninitializedObject)的问题在于将运行某个其他类的构造函数。

在你开始分析我的需求之前。这仅在引擎初始化时运行以获得一组标准值。如果此 get'er 依赖于其他初始化值,则“插件”将被标记为失败,因为没有返回有效值。如果未标记为失败,稍后将使用Activator.CreateInstance()正确加载该类。

所以坚持这个问题:.Net 是否支持任何方式来创建 100% 未初始化的类?

更新答案。在发布我的问题之前,我对此进行了测试。

对于某个其他类无法运行的答案,我已经对其进行了测试,如果是静态的,它就会运行。

CreateInstance 显示消息框。GetUninitializedObject 没有。

CreateInstance 显示消息框。GetUninitializedObject 显示消息框。

有没有办法绕过静态字段初始化器和 ctors?

0 投票
2 回答
168 浏览

c# - 为什么我动态创建的自定义类型数组返回空值实例?

所以我创建了这个简单的代码来动态创建一个数组——在索引 0 和 1 处期望两个“空/未初始化”对象。但是我在变量 r 中得到了一个对象数组,它们都是空的?

我错过了一些如此基本的东西......我不明白。提前致谢。

0 投票
1 回答
8315 浏览

jaxb - 如何使用 Jaxb 生成的 ObjectFactory?

我正在使用 Jaxb 生成 Java 类。我的架构定义了以下元素:

如您所见,我有一个元素称为Automobile

Jaxb 创建了我用来创建汽车实例的类和ObjectFactory。让我感到困惑的是创建汽车实例的方法如下:

为什么createAutomobile方法有参数?我该如何使用这种方法?

我尝试了以下方法:

但这不会编译,因为汽车类是抽象的,因此我无法创建实例。

0 投票
1 回答
153 浏览

mono - mono - 如何将 ref 与 CreateInstance 或 InvokeMethod 一起使用?

如何在 Mono 中使用 CreateInstance 传递“ref”?

例子:

这在我的 Windows 控制台应用程序中运行良好。问题是当我将它移植到 Mono 时,我得到一个丢失的方法异常,指出没有找到接受类型“SomeType”的“MyMethod”。

如果我从构造函数中删除 'ref',Mono 会找到该方法并毫无问题地运行它。

有任何想法吗?

提前致谢。

0 投票
1 回答
598 浏览

nullpointerexception - 我无法创建 SipProvider-MjSip 库

我是 MjSip 的新手,我想创建一个 SipProvider 类的实例。所以我写了这个小代码但得到了一些错误:

这是错误堆栈:

我使用的是局域网,IP 地址是有效的。为什么会这样??请帮我!!!

0 投票
1 回答
144 浏览

generics - 使用 CreateInstance 创建通用类对象

我有以下代码示例

现在尝试使用以下代码创建对象给了我错误-

给出的错误是

GenericArguments[0], 'MvcApplication2.Controllers.Employee', on 'MvcApplication2.Controllers.GenericController`1[T]' 违反了类型 'T' 的约束。

从 GenericController 类中删除 ITest 接口可以正常工作。我需要该接口,因此将控制器对象类型转换为接口我可以设置新创建对象的一些属性。

如何解决这个问题。

-拉杰什

0 投票
1 回答
520 浏览

c# - C# 加载程序集和实时更新表单

我已经尝试过搜索和搜索这个,但也许我正在寻找错误的东西。

我正在制作一种控制面板,我可以在其中添加一些动态加载的 DLL。加载 DLL 对我来说没问题,让它运行也没问题 - 我现在正在使用“Activator.CreateInstance”来执行此操作。

该方法正在做我想要它做的事情。

但是......我需要一些帮助来做几件事:

1:当我执行 DLL 时,即使我在线程中运行,表单也会冻结 - 我该如何避免这种情况?

2:我需要能够实时读取 DLL 的当前状态 - DLL 文件是使用超类制作的,因此我可以读取“CurrentStatus”-属性。是否可以读取正在运行的文件的这种状态?在我看来,因为程序正在等待 DLL 完成,这使它冻结。

希望你们中的一些人可以帮助我。

提前致谢 :)

编辑:添加一些代码

0 投票
3 回答
3248 浏览

.net - 无法获取最小起订量以从类型创建实例 - “没有为此对象定义无参数构造函数。”

我正在尝试使用 Moq 来存根一个数据类,当我传递它的类型时,我想通过 Activator.CreateInstance 动态创建它(通过 Moq.Object.GetType(),其中 Moq 是存根实例),但我得到了System.MissingMethodException {"No parameterless constructor defined for this object."}

我究竟做错了什么?我不想更改我的主题代码以适应最小起订量。

测试

主题