เป็นไปได้ไหมที่จะทำซีเรียลไลซ์คลาสที่มีคุณสมบัติประเภท DataTable?
ตัวอย่าง:
public class MyMessage
{
public DataTable Fields { get; set; }
public string Code { get; set; }
public string Name { get; set; }
}
คุณสมบัติ DataTable ส่วนใหญ่ควรได้รับการตกแต่งด้วยแอตทริบิวต์ แต่อย่างไร
นี่คือรหัสของฉัน:
XmlSerializer xs = new XmlSerializer(typeof(MyMessage));
StringWriter sw = new StringWriter();
var str = xs.Serialize(sw, msg);
ฉันได้รับข้อยกเว้น: ไม่สามารถทำให้ DataTable เป็นอนุกรมได้ ไม่ได้ตั้งชื่อ DataTable
DataTable.WriteXml
msdn.microsoft.com/en -us/library/ - person Nekeniehl   schedule 14.02.2018DataTable
คือ[Serializable]
คุณมีข้อยกเว้นหรือทำไมคุณถึงถามคำถามนี้? โดยทั่วไป หากมีคุณสมบัติประเภทที่ไม่สามารถทำให้เป็นอนุกรมได้ คุณจะต้องสร้างคุณสมบัติอื่นใน getter/setter ซึ่งคุณแปลงเป็น/จากประเภทที่ไม่สามารถทำให้เป็นอนุกรมได้ และรับ/ตั้งค่าคุณสมบัติดั้งเดิม (ขณะทำเครื่องหมายคุณสมบัติดั้งเดิมด้วย[XmlIgnore]
) - person Sinatr   schedule 14.02.2018DataTable.TableName
แล้วหรือยัง ถึงสิ่งที่แนะนำโดยคำตอบเหล่านั้นและข้อความยกเว้นเอง? - person dbc   schedule 14.02.2018