gpt4 book ai didi

c# - 反序列化验证

转载 作者:行者123 更新时间:2023-11-30 22:50:30 25 4
gpt4 key购买 nike

我正在使用我使用 DataContractSerializer 序列化和反序列化的字体列表。在这两个步骤之间,可以想象用户已经从他们的机器上删除了一个字体。我想在反序列化时检查字体名称,以确保它仍然存在于系统中。如果它不存在,则该元素不包含在 DataContractSerializer.ReadObject() 返回的集合中。

具体来说,我正在存储一个 FontFamily 并序列化一个获取 FontFamily.Name 的属性。在此属性的设置访问器中,我将字符串转换回 FontFamily

我能想到的唯一合理的验证替代方法是让属性的设置访问器忽略无效值,并在以后过滤掉无效的反序列化对象。但是,我不喜欢这个选项 - 有没有更合适的方法?

最佳答案

为什么不利用 OnDeserializedAttribute?让您的回调执行对客户端环境无效的项目的验证和删除。

http://msdn.microsoft.com/en-us/library/ms733734.aspx

如果您在幕后删除或修改数据,我确实担心您将如何往返数据。

(例如:我记得我对旧版本的 MS Publisher 特别沮丧,因为我在连接到两台不同打印机的两台不同机器上处理文档。每当我在一台机器上修改文件时,Publisher 都会重新格式化document to target the printer attached to that machine. 当我回到另一台我要进行实际打印的机器时,Publisher 会再次重新格式化,但页边距不会很正确,所以我需要再调整一些。 )

关于c# - 反序列化验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/525977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com