特定のオブジェクトの履歴を保持したいプロジェクトに取り組んでいます。保存時に、現在の状態を履歴に保存するメソッドを呼び出すことができるように、オブジェクトが変更されたかどうかを判断するメソッドが必要です。たとえば、ユーザーが変更を行った (または変更しなかった可能性がある) オブジェクトからフォームにデータを入力し、送信元を送信します。元のオブジェクトと、フォームから更新されたそのオブジェクトのコピーを取得し、変更されたかどうかを判断したいと考えています。さらに、ある時点で、特定のプロパティは問題ではないと判断する場合があります (たとえば、名前が変更された場合は追跡しません)。
これを達成するための最も簡単で柔軟な方法は、気になるプロパティにカスタム属性 [ChangeTracked] を指定し、リフレクションを使用してその属性を持つすべてのプロパティのリストを取得し、それらをループすることだと考えています。 A.property == B.property を比較して、変更があるかどうかを判断します。
これは機能しますか?プロパティの値が変更されたかどうかを判断するためにオブジェクトに追加できる何らかの組み込みメソッドなど、これを処理するための大幅に優れた/より簡単な方法はありますか? 解決策が何であれ、いくつかの疑似コードをいただければ幸いです。明確化のポイントとして、ソリューションは、関心のある値が作成されてから割り当てられた場合だけでなく、実際に変更されたかどうかを判断する必要があります。つまり、 Name="bob" を設定し、割り当て前に既に "bob" であったこれは変更としてカウントされません。