XML 로그 파일을 비 직렬화하려고합니다. XML 문서 (0,0)에 오류가 있지만 아무것도 얻을 수없는 것 같습니다. 나는 그것이 내 수업과 관련이 있다고 생각하지만 해결책을 찾지 못하는 것 같습니다. 이XML의 비 직렬화
<?xml version="1.0" encoding="utf-8"?>
<POSLog>
<Transaction>
<RetailStoreID>1</RetailStoreID>
<SequenceNumber>2</SequenceNumber>
</Transaction>
<Transaction>
<RetailStoreID>1</RetailStoreID>
<SequenceNumber>3</SequenceNumber>
</Transaction>
</POSLog>
이 클래스
[Serializable()]
public class Transaction
{
[XmlElement("RetailStoreID")]
public string RetailStoreID { get; set; }
[XmlElement("SequenceNumber")]
public string SequenceNumber { get; set; }
}
[Serializable()]
[XmlRoot("POSLog")]
public class POSLog
{
[XmlArray("POSLog")]
[XmlArrayItem("Transaction", typeof(Transaction))]
public Transaction[] Transaction { get; set; }
}
이 역 직렬화 코드
POSLog poslog = new POSLog();
string path = "POSLog.xml";
XmlSerializer serializer = new XmlSerializer(typeof(POSLog));
StreamReader reader = new StreamReader(path);
poslog = (POSLog)serializer.Deserialize(reader);
발견 (단지 간체) 서버
XML에서 오는 로그 파일이 그대로 나는 XML 서식을 변경할 수 없습니다 클래스 변경 사항과 함께 StreamReader에서 FileStream으로 전환하여 수정하십시오. StreamReader를 사용할 때 인코딩 변경이 도움이되지 않는 것 같습니다.
1) 내부 예외가 필요합니다. 2) (offtopic) 너무 많은 속성을 사용합니다. –
stacktrace 및 특히 전체 예외 (내부 예외)를 표시하십시오. – HimBromBeere
오류는 (0,0)이므로 첫 번째 행의 첫 번째 문자를 의미하므로 XML 파일이 바이트 순서 표시가있는 UTF를 사용하여 인코딩 되었기 때문에 오류가 발생했다고 생각합니다. StreamReader에 인코딩을 추가해보십시오. –