ฉันกำลังทำงานกับรายการแบบอักษรที่ฉันซีเรียลไลซ์และดีซีเรียลไลซ์โดยใช้ DataContractSerializer
ในระหว่างสองขั้นตอนนี้ อาจเป็นไปได้ว่าผู้ใช้ลบแบบอักษรออกจากเครื่องแล้ว ฉันต้องการตรวจสอบชื่อแบบอักษรในขณะที่กำลังทำการดีซีเรียลไลซ์เพื่อให้แน่ใจว่ายังคงมีอยู่ในระบบ หากไม่มีอยู่ องค์ประกอบนั้นจะไม่รวมอยู่ในคอลเลกชันที่ส่งคืนโดย DataContractSerializer.ReadObject()
โดยเฉพาะ ฉันกำลังจัดเก็บ FontFamily
และซีเรียลไลซ์คุณสมบัติที่ได้รับ FontFamily.Name
ใน set accessor ของคุณสมบัตินี้ ฉันจะแปลงสตริงกลับเป็น FontFamily
ทางเลือกเดียวที่สมเหตุสมผลในการตรวจสอบที่ฉันคิดได้ก็คือให้ set accessor ของคุณสมบัติละเว้นค่าที่ไม่ถูกต้อง และกรองออบเจ็กต์ดีซีเรียลไลซ์ที่ไม่ถูกต้องออกในภายหลัง ฉันไม่ชอบตัวเลือกนี้ แต่มีวิธีที่เหมาะสมกว่านี้ไหม