gpt4 book ai didi

c# - 根据C#中传递的字符串值将对象转换为类型

转载 作者:太空狗 更新时间:2023-10-29 22:20:25 25 4
gpt4 key购买 nike

我有一个要求,其中对象类型 [对象的名称] 作为字符串变量传递。现在根据传递的对象名称,我需要创建该对象类型。请注意字符串值包含确切的对象类型名称。我已经编写了一个代码片段,但它引发了异常。

例如 -

string objectName = "EntityTest.Entity.OrderEntity";//Entity type name
object obj = new object();
object newobj = new object();
newobj = Convert.ChangeType(obj, Type.GetType(objectName));

我这样做时出现错误 --> 对象必须实现 IConvertible。

我的实体 OrderEntity 已经实现了 IConvertible 接口(interface)。

非常感谢任何帮助/建议。有没有其他方法可以创建对象来满足我的要求。

最佳答案

您当前正在尝试转换一个现有 对象,而不是创建一个正确的类型。假设您的 Type.GetType 调用正常,您可以使用:

Type type = Type.GetType(objectName);
object x = Activator.CreateInstance(type);

注意几点:

  • Type.GetType(string) 需要程序集限定名称​​除非该类型在当前正在执行的程序集中或mscorlib
  • Activator.CreateInstance(Type)将调用无参数构造函数(必须可访问);如果你需要传递参数给构造函数,有other overloads可用。

关于c# - 根据C#中传递的字符串值将对象转换为类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6230526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com