我使用XmlSerializer將自定義對象從文件反序列化爲應用程序中的對象。 我的問題是,我希望對象中的某個字段默認爲「True」,而不是「False」,以便在我要反序列化的文件中不存在新屬性。如何將缺少布爾字段反序列化爲TRUE
默認情況下,.Net將此值指定爲false,因爲它不存在於文件中,如果它不存在,我希望它默認爲True。我在該對象的定義字段中使用了System.ComponentModel.DefaultValue(True)屬性,但這不起作用。有誰知道如何做到這一點?
我使用XmlSerializer將自定義對象從文件反序列化爲應用程序中的對象。 我的問題是,我希望對象中的某個字段默認爲「True」,而不是「False」,以便在我要反序列化的文件中不存在新屬性。如何將缺少布爾字段反序列化爲TRUE
默認情況下,.Net將此值指定爲false,因爲它不存在於文件中,如果它不存在,我希望它默認爲True。我在該對象的定義字段中使用了System.ComponentModel.DefaultValue(True)屬性,但這不起作用。有誰知道如何做到這一點?
您可以直接在對象的空構造函數中設置布爾值的值。這樣,反序列化器將在布爾中用true創建反序列化的對象。
出於某種原因,當我反序列化另一個具有布爾屬性的對象類的字段時,這對我無效。也許我錯過了一些東西,但我只是做了布爾型可空(bool?),並且在反序列化之後,如果布爾值爲null,則將布爾值設置爲true。
工作。感謝samy! – OneSource 2010-10-04 11:36:14