이것은 역 직렬화하려는 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 내가 이것을 썼지 만 올바른 클래스가 아닌 것 같아요 Program {
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("");
}
}
방금 UserMessage
Type을 만들었고 코드가 제대로 작동합니다. 내가 한 일을 댓글로 올릴 수 없으므로 답변으로 게시하십시오. 이것은 당신을 도울 수 있습니다.
다음은 deserialze 코드입니다.
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; }
}
이것이 도움이되는지 알려주세요.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다