当我对 xml 进行反序列化时,我收到“XML 文档 (1, 41) 中存在错误”。 .任何人都可以告诉我问题是什么。
public static T DeserializeFromXml<T>(string xml)
{
T result;
XmlSerializer ser = new XmlSerializer(typeof(T));
using (TextReader tr = new StringReader(xml))
{
result = (T)ser.Deserialize(tr);
}
return result;
}
我用这个函数来做。
<?xml version='1.0' encoding='utf-16'?>
<Message>
<FirstName>Hunt</FirstName>
<LastName>DAvid</LastName>
</Message>
最佳答案
确保您的 Message 类如下所示:
[Serializable, XmlRoot("Message")]
public class Message
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
这对我来说很好:
string xml = File.ReadAllText("c:\\Message.xml");
var result = DeserializeFromXml<Message>(xml);
The name of the XML root element that is generated and recognized in an XML-document instance. The default is the name of the serialized class.
所以你的类名可能不是Message
,这就是反序列化器无法使用默认行为找到它的原因。
关于c# - XML 文档中存在错误 (1, 41),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9821682/