我有不同的xml字符串应该映射到不同的对象,就像我们将json字符串转换为泛型列表有没有办法将xml字符串转换为通用列表而不指定标记名称。请参阅json反序列化代码:
public List<T> DeSerialize<T>(string input)
{
var serializer = new DataContractJsonSerializer(typeof(List<T>));
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(input)))
{
return (List<T>)serializer.ReadObject(ms);
}
}
如果对象的属性名称和json名称相同,上面的代码将反序列化为通用列表。
我现在的代码将转换为特定类型而非通用列表 见下面的代码。这应该在不指定映射xmlnode的额外属性属性的情况下完成。请建议一个通用的解决方案。
public static T FromXmlString<T>(string xmlString)
{
var reader = new StringReader(xmlString);
var serializer = new XmlSerializer(typeof(T));
var instance = (T)serializer.Deserialize(reader);
return instance;
}
答案 0 :(得分:0)
您可以这样:
就是这样!您已从C:\ path \到\ xml \ file.cs
中的xml文件生成C#类