Tag: 容错

怎么了属性?

据我所知,当我反序列化缺少这个新成员的旧版本的类时,我必须使用[OptionalField]属性在我的类的较新版本中装饰一个新成员。 但是,在序列化类之后添加InnerTranslator属性时,下面的代码不会引发exception。 我在onDeserialization方法中检查属性是否为null(它确认它没有被序列化),但我原本希望代码抛出exception。 [OptionalField]属性本身是可选的吗? class Program { static void Main(string[] args) { var listcol = new SortedList { {“Estados Unidos”, “United States”}, {“Canadá”, “Canada”}, {“España”, “Spain”} }; var translator = new CountryTranslator(listcol); using (var file_stream=new FileStream(“translator.bin”,FileMode.Open)) { var formatter = new BinaryFormatter(); translator = formatter.Deserialize(file_stream) as CountryTranslator; file_stream.Close(); } Console.ReadLine(); } } [Serializable] internal class […]