คำถามติดแท็ก xml-serialization

แท็กนี้อ้างถึงเทคโนโลยีการทำให้เป็นอนุกรมซึ่งใช้ XML เป็นรูปแบบข้อมูล

5
เหตุใดคุณสมบัติที่ไม่มีตัวตั้งค่าจึงไม่ถูกทำให้เป็นอนุกรม
ฉันมีคลาสที่ทำให้เป็นอนุกรมได้และหนึ่งในคุณสมบัติในคลาสของฉันสร้างขึ้นGuidใน getter คุณสมบัติไม่ใช้ตัวตั้งค่าและละเว้นระหว่างการทำให้เป็นอนุกรม เหตุใดจึงเป็นเช่นนั้นและฉันจึงต้องใช้ตัวตั้งค่าเสมอเพื่อให้คุณสมบัติของฉันเป็นแบบอนุกรม [Serializable] public class Example { [XmlAttribute("id")] public string Id { get { return Guid.NewGuid().ToString(); } } } ฉันลองใช้ตัวตั้งค่าว่างและได้รับการจัดลำดับอย่างถูกต้อง [Serializable] public class Example { [XmlAttribute("id")] public string Id { get { return Guid.NewGuid().ToString(); } set {} } } อัปเดต : คุณช่วยชี้ให้เห็นได้อย่างไรว่าฉันจะกำหนดคุณสมบัติที่ค่าไม่เคยเปลี่ยนแปลงหรือค่าที่สร้างขึ้นภายในได้อย่างไร

6
การใช้ StringWriter สำหรับ XML Serialization
ฉันกำลังค้นหาวิธีง่ายๆในการทำให้เป็นอนุกรมวัตถุ (ใน C # 3) ฉัน googled ตัวอย่างบางส่วนและคิดสิ่งต่างๆเช่น: MemoryStream memoryStream = new MemoryStream ( ); XmlSerializer xs = new XmlSerializer ( typeof ( MyObject) ); XmlTextWriter xmlTextWriter = new XmlTextWriter ( memoryStream, Encoding.UTF8 ); xs.Serialize ( xmlTextWriter, myObject); string result = Encoding.UTF8.GetString(memoryStream .ToArray()); หลังจากอ่านคำถามนี้ฉันถามตัวเองทำไมไม่ใช้ StringWriter? ดูเหมือนง่ายกว่ามาก XmlSerializer ser = new …


11
ตรวจสอบว่าวัตถุเป็นตัวเลขใน C # หรือไม่
ฉันต้องการที่จะตรวจสอบว่าวัตถุเป็นจำนวนเพื่อที่.ToString()จะส่งผลให้สตริงที่มีตัวเลขและ+, -,. เป็นไปได้ไหมโดยพิมพ์เช็คอิน. net (like:) if (p is Number)? หรือฉันควรแปลงเป็นสตริงแล้วลองแยกวิเคราะห์เป็นสองเท่า? อัปเดต:เพื่อชี้แจงว่าวัตถุของฉันคือ int, uint, float, double และอื่น ๆ ไม่ใช่สตริง ฉันกำลังพยายามสร้างฟังก์ชันที่จะทำให้วัตถุใด ๆ เป็นอนุกรมเป็น xml ดังนี้: <string>content</string> หรือ <numeric>123.3</numeric> หรือเพิ่มข้อยกเว้น

4
ฉันจะทำให้ xmlserializer เป็นซีเรียลไลซ์เท่านั้น xml ธรรมดาได้อย่างไร
ฉันต้องการรับ xml ธรรมดาโดยไม่มี<?xml version="1.0" encoding="utf-16"?>จุดเริ่มต้นและxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"ในองค์ประกอบแรกจากXmlSerializer. ฉันจะทำมันได้อย่างไร?

7
XML Serialization และประเภทที่สืบทอด
ต่อจากคำถามก่อนหน้าของฉันฉันได้ดำเนินการเพื่อรับโมเดลวัตถุของฉันเพื่อทำให้เป็นอนุกรมกับ XML แต่ตอนนี้ฉันประสบปัญหาแล้ว (แปลกใจ!) ปัญหาที่ฉันมีคือฉันมีคอลเล็กชันซึ่งเป็นประเภทคลาสฐานนามธรรมซึ่งบรรจุโดยประเภทที่ได้จากคอนกรีต ฉันคิดว่ามันจะเป็นการดีที่จะเพิ่มแอตทริบิวต์ XML ให้กับคลาสทั้งหมดที่เกี่ยวข้องและทุกอย่างจะเป็นสีพีช น่าเศร้าที่ไม่เป็นเช่นนั้น! ดังนั้นฉันได้ทำการขุดใน Google และตอนนี้ฉันเข้าใจแล้วว่าทำไมมันถึงไม่ทำงาน ในความXmlSerializerเป็นจริงแล้วการสะท้อนที่ชาญฉลาดเพื่อทำให้วัตถุเป็นอนุกรมเป็น / จาก XML และเนื่องจากมันขึ้นอยู่กับประเภทนามธรรมจึงไม่สามารถเข้าใจได้ว่ามันกำลังพูดถึงอะไร ละเอียด. ฉันเจอหน้านี้ใน CodeProject ซึ่งดูเหมือนว่ามันอาจช่วยได้มาก (ยังอ่าน / ใช้อย่างเต็มที่) แต่ฉันคิดว่าฉันอยากจะนำปัญหานี้ไปที่ตาราง StackOverflow ด้วยเพื่อดูว่าคุณเรียบร้อยหรือไม่ แฮ็ก / เทคนิคเพื่อให้สิ่งนี้เริ่มต้นใช้งานได้เร็วที่สุด / เบาที่สุด สิ่งหนึ่งที่ฉันควรเพิ่มก็คือฉันไม่ต้องการไปตามXmlIncludeเส้นทาง มีการเชื่อมต่อกับมันมากเกินไปและพื้นที่นี้ของระบบอยู่ระหว่างการพัฒนาอย่างหนักดังนั้นจึงน่าจะเป็นเรื่องที่น่าปวดหัวในการบำรุงรักษาอย่างแท้จริง!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.