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

标签 c# .net object types casting

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

例如 -

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/

相关文章:

c# - 与 C# 的所有事物保持同步

c# - 是否有实时 IIS 流量查看器(或通过 C# 以编程方式获取它的方式)

c# - 我们可以在 ASP.NET 中为 pagemethod 和 webmethod 使用相同的数据表吗?

.net - 温莎城堡 : How to wire up a component to a factory property rather than method

java - java中的混合类型和混合数组类型数组Object []未编译

javascript - 保存对 Firestore 的引用类型,但获取 [object object] 字符串

javascript - Object.defineProperty 的主要用例是什么?

c# - 如何将 EF 属性转换为 SQL Server 的计算列?

c# - 在 C# 中触发 Google Analytics 重定向

c# - 通用类词典