我正在处理一系列使用DataContractSerializer
序列化和反序列化的字体。在这两个步骤之间,可以想象用户已经从他们的机器中删除了一种字体。我想检查字体名称,因为它正在反序列化,以确保它仍然存在于系统中。如果它不存在,则该元素不包含在由DataContractSerializer.ReadObject()
返回的集合中。反序列化验证
具体而言,我存储了一个FontFamily
并序列化了一个属性,获得FontFamily.Name
。在此属性的set访问器中,我将字符串转换回FontFamily
。
我能想到的唯一合理的验证替代方法是使属性的set访问器忽略无效值,并在稍后过滤掉无效的反序列化对象。但是我不喜欢这个选择 - 是否有更合适的方法?
我想那样可以。我仍然不喜欢这个无效项目仍然被创建的想法,但我想我可以在这种情况下接受它。 Re:数据可移植性,目前,我不会担心在多台机器上使用序列化文件。也许以后。 – 2009-02-08 21:06:22