2

XmlSerializerを使用して、カスタムオブジェクトをファイルからアプリ内のオブジェクトに逆シリアル化します。 私の問題は、デシリアライズ元のファイルに存在しない新しいプロパティに対して、オブジェクトのフィールドをデフォルトで「False」ではなく「True」に設定したいということです。

デフォルトでは、.Netはこの値をfalseに割り当てています。これは、ファイルに存在しないためです。存在しない場合は、デフォルトでTrueに設定します。オブジェクトの定義のフィールドでSystem.ComponentModel.DefaultValue(True)属性を使用しましたが、機能しませんでした。誰かがこれを行う方法を知っていますか?

4

2 に答える 2

2

オブジェクトの空のコンストラクターにブール値を直接設定できます。このようにして、デシリアライザーはブール値に true を指定してデシリアライズされたオブジェクトを作成します。

于 2010-10-04T11:30:01.020 に答える
0

何らかの理由で、ブール型のプロパティを持つ別のオブジェクト クラスであるフィールドを逆シリアル化しているときに、これが機能しませんでした。たぶん私は何かを逃したかもしれませんが、ブール値をnull可能(ブール値?)にし、逆シリアル化した後、ブール値がnullの場合はtrueに設定しました。

于 2011-05-30T05:45:30.173 に答える