这是我要反序列化的xml文件。
在将某些xml反序列化为C#中的对象时遇到问题。 的test.xml
<userMessage>
<methodArguments>
<entry>
<key>text</key>
<value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">TEST</value>
</entry>
</methodArguments>
<methodName>relay:show:1</methodName>
</userMessage>
我用xsd工具生成了这个TEST.cs
我想在控制台上显示XML值。
我想做一些类似本教程http://blogs.msdn.com/b/yojoshi/archive/2011/05/14/xml-serialization-and-deserialization-entity-classes-with-xsd-exe.aspx?Redirected=true的内容 我写了这个,但我认为它不正确 课程 {
static void Main(string[] args)
{
using (FileStream xmlStream = new FileStream("C:\\Users\\INI\\Desktop\\XML\\TEST.xml", FileMode.Open))
{
using (XmlReader xmlReader = XmlReader.Create(xmlStream))
{
XmlSerializer serializer = new XmlSerializer(typeof(userMessage), new XmlRootAttribute("userMessage"));
userMessage deserializedTest = serializer.Deserialize(xmlReader) as userMessage;
foreach(var student in deserializedTest.methodName)
{
Console.WriteLine("aaaaaaaaa", student);
Console.WriteLine("");
}
}
答案 0 :(得分:1)
我刚刚创建了一个UserMessage
类型,代码运行正常。无法发布我所做的评论,因此将其作为答案发布。这可能会对你有所帮助。
这是反序列化代码
System.Xml.Serialization.XmlSerializer srl = new
System.Xml.Serialization.XmlSerializer(typeof(UserMessage));
XmlReader reader = XmlReader.Create(@"D:\temp\test.xml");
var obj= srl.Deserialize(reader);
以下是类型。
[Serializable]
public class UserMessage
{
public MethodArguments MethodArguments { get; set; }
public string MethodName { get; set; }
}
public class MethodArguments
{
public Entry Entry { get; set; }
}
public class Entry
{
public string Key { get; set; }
public string Value { get; set; }
}
如果有帮助,请告诉我。