ドメインモデルに2つのオブジェクト(両方ともシリアライズ可能)と1つのwinformコントロールがあります。最初のオブジェクトと winform コントロールは、2 番目のオブジェクトの同じイベントのリスナーです。最初のオブジェクトをリスナーとして、winform コントロール リスナーを使用せずに、2 番目のオブジェクトをシリアル化します。
class SecondObject
{
public event EventHandler SomeEvent;
}
class FirstObject
{
SecondObject object;
object.SomeEvent += secondObject_SomeEvent();
}
class WinFormControl
{
SecondObject object;
object.SomeEvent += secondObject_SomeEvent();
}
今、私はそうします:
class SecondObject
{
[field: NonSerialized]
public event EventHandler SomeEvent;
}
class FirstObject
{
SecondObject object;
[OnDeserialized()]
internal void SubscribeToEventsOnDeserialized(StreamingContext context)
{
object.SomeEvent += secondObject_SomeEvent();
}
}
しかし、NonSerialized イベントなしで実行できますか?
Ps 下手な英語で申し訳ありません。