私がこのクラスを持っているとしましょう:
[XmlType]
public class TestModel : BindableBase
{
private int _id;
[XmlElement(Order = 7)]
public int Id
{
get
{
return _id;
}
set
{
SetProperty(ref _id, value);
}
}
}
私は多くのシリアライゼーションとデシリアライゼーションを行っています (newtonsoft を使用した Json との間、および protobuf を使用したバイト配列との間) SetProperty
。
基本的に、私は次のようなものを持ちたいと思っています:
[XmlElement(Order = 7)]
public int Id
{
get
{
return _id;
}
set
{
if(!serializing)
SetProperty(ref _id, value);
else
_id = value;
}
}
これを実行したい理由は、1 つ目はOnPropertyChanged
逆シリアル化中にイベントを発生させる必要がないこと、2 つ目はパフォーマンスの面でコストがかかるためです。
OnDeserializing
andを使用しOnDeserialized
てフラグを設定しようとしましたOnDeserialized
が、逆シリアル化がいつ終了したかを知らせてくれますが、で装飾されたメソッドはOnDeserializing
逆シリアル化の直前ではなく操作中に呼び出されます。
このコードはポータブル クラス ライブラリ アセンブリに含まれているため、使用できませんSerializationContext
。
手がかり/ヒントは大歓迎です!