我将尝试创建一个通用的XML转对象程序。换句话说,以下是我的XML内容:
运行时错误。据我所知,它直接将类型标识符(字符串)转换为类型时出现了问题。至少在保持通用性和清晰性方面,我不确定如何解决这个问题。有什么想法吗?如果您不太理解,我会尽力进一步说明。非常感谢您的帮助!
<setting>
<name>testing</name>
<type>System.String</type>
<defaultObj>TTTT</defaultObj>
</setting>
类型字段包含要加载回来的对象的类型。这只是我序列化的对象结构。但无论如何,我在转换时遇到了问题。
System.String
将其转换为实际类型变量。例如,为了进行转换,我有以下代码:
foreach (XNode node in document.Element(root).Nodes())
{
T variable = new T(); //where T : new()
foreach (FieldInfo field in fields)
{
field.SetValue(variable, Convert.ChangeType(((XElement)node).Element(field.Name).Value, field.FieldType));
}
retainedList.Add(variable);
}
这段代码使用了一种通用的方式获取对象。在处理 Type 字段时,可能会出现问题。你可能会看到以下错误信息:
Invalid cast from 'System.String' to 'System.Type'.
运行时错误。据我所知,它直接将类型标识符(字符串)转换为类型时出现了问题。至少在保持通用性和清晰性方面,我不确定如何解决这个问题。有什么想法吗?如果您不太理解,我会尽力进一步说明。非常感谢您的帮助!