gpt4 book ai didi

c# - 将 xml 字符串反序列化为对象

转载 作者:行者123 更新时间:2023-11-30 13:30:36 25 4
gpt4 key购买 nike

我写这个方法是为了将 xml 字符串转换成对象:

private object Deserializer(Type type)
{
object instance = null;
try
{
XmlSerializer xmlSerializer = new XmlSerializer(type);
using (StringReader stringreader = new StringReader(somestring))
{
instance = (type)xmlSerializer.Deserialize(stringreader);
}
}
catch (Exception ex)
{
throw ex;
}

return instance;
}

但是在这里:

instance = (type)xmlSerializer.Deserialize(stringreader);

此错误显示:找不到类型或命名空间名称“type”(是否缺少 using 指令或程序集引用?)我该如何解决?

最佳答案

您不能转换为“类型”,您需要像这样指定确切的类型(对于字符串):

(string)xmlSerializer.Deserialize(stringreader);

也许可以考虑使用这样的通用函数:

private T Deserializer<T>()
{
T instance = null;
try
{
var xmlSerializer = new XmlSerializer(typeof(T));
using (var stringreader = new StringReader(somestring))
{
instance = (T)xmlSerializer.Deserialize(stringreader);
}
}
catch (Exception ex)
{
throw ex;
}

return instance;
}

然后像这样调用函数:

var instance = xmlSerializer.Deserialize<SomeType>();

如果你只想在运行时指定类型,你可以使用:

instance = Convert.ChangeType(xmlSerializer.Deserialize(stringreader), type);

关于c# - 将 xml 字符串反序列化为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31802868/

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