gpt4 book ai didi

c# - 在 C# 中从字符串创建结构

转载 作者:太空狗 更新时间:2023-10-30 00:58:53 25 4
gpt4 key购买 nike

我看到很多关于从字符串实例化类的问题,但一直无法找到关于以相同方式创建结构的任何信息。

我有一个包含如下结构的类:

Public Structure callDetails
Public GUID As Guid
Public ringTime as Date
Public CBN As String

等等

我真正想做的就是从结构中获取字段名称。我不关心操作字段中的数据。

到目前为止,我可以非常接近这个。

        callDetails callTableDef= new callDetails();

Type tableType = callTableDef.GetType();

object tableStruct = (object)Activator.CreateInstance(tableType);
System.Reflection.FieldInfo[] fields = tableType.GetFields();
foreach (System.Reflection.FieldInfo field in fields)
Debug.WriteLine(field.Name + " = " + field.GetValue(tableStruct));

但是,我仍然需要创建一个具有实际名称的结构实例。我希望能够传递这样的字符串:

Type tableType = System.Type.GetType("callDetails");

当我这样做时,我从 Activator.CreateInstance() 得到一个 ArgumentNullException

难道 getType 不应该查找作为字符串传递给它的值并返回类型吗?

我是 C# 的新手,在这个项目之前我主要用 Java 编程。

最佳答案

您必须使用命名空间限定类型名称:

Type tableType = System.Type.GetType("mynamespace.callDetails");

如果它在不同的程序集中,您需要程序集限定名称。详情可查on MSDN .仅使用您拥有的类型名称,它将无法解析并将返回 null,因此您的参数为 null 异常。

关于c# - 在 C# 中从字符串创建结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2030780/

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