คำถามติดแท็ก code-access-security

3
ฉันจะใช้ ISerializable ใน. NET 4+ โดยไม่ละเมิดกฎความปลอดภัยในการสืบทอดได้อย่างไร
ความเป็นมา: Noda Timeมีโครงสร้างที่ต่อเนื่องกันได้มากมาย แม้ว่าฉันไม่ชอบการทำให้เป็นอนุกรมไบนารี แต่เราก็ได้รับคำขอให้สนับสนุนมากมายกลับมาในไทม์ไลน์ 1.x เราสนับสนุนโดยใช้ISerializableอินเทอร์เฟซ เราได้รับเมื่อเร็ว ๆ นี้รายงานปัญหาของ Noda เวลา 2.x ล้มเหลวภายใน .NET ซอ รหัสเดียวกันที่ใช้ Noda Time 1.x ทำงานได้ดี ข้อยกเว้นที่เกิดขึ้นคือ: กฎความปลอดภัยในการสืบทอดถูกละเมิดในขณะที่แทนที่สมาชิก: 'NodaTime.Duration.System.Runtime.Serialization.ISerializable.GetObjectData (System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext) " ความสามารถในการเข้าถึงความปลอดภัยของวิธีการลบล้างต้องตรงกับความสามารถในการเข้าถึงความปลอดภัยของวิธีการที่ถูกลบล้าง ฉันได้ จำกัด สิ่งนี้ให้แคบลงเป็นกรอบงานที่กำหนดเป้าหมาย: 1.x เป้าหมาย. NET 3.5 (โปรไฟล์ลูกค้า); 2.x เป้าหมาย. NET 4.5 พวกเขามีความแตกต่างอย่างมากในแง่ของการสนับสนุน PCL เทียบกับ. NET Core และโครงสร้างไฟล์โครงการ แต่ดูเหมือนว่าจะไม่เกี่ยวข้อง ฉันสามารถทำซ้ำสิ่งนี้ในโครงการในพื้นที่ได้ แต่ฉันไม่พบวิธีแก้ปัญหา ขั้นตอนในการสร้างซ้ำใน …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.