我想實現一個非常簡單的,更重要的類似實體框架軌道如何對象更改(How change tracking works in Entity Framework)可選的對象跟蹤系統的性能變化。隱式檢測對象
我有一個基類的所有其他對象繼承。這個類有一個叫做modified的布爾字段。明確的解決方案是在setter被觸發時更新其他類的所有屬性的每個setter以設置modified = true
。這種解決方案已在這裏詳細介紹了Create an event to watch for a change of variable。
我想這是一個比較含蓄的解決方案。我有很多對象和很多屬性。更新二傳手是非常麻煩的。我不想直接模仿實體框架如何執行任務,因爲它對我當前的需求來說太昂貴了。我想要一個對象列表,我可以循環檢查modified == true
。這使我可以選擇跟蹤對象,並快速檢查它們是否發生更改,而不必爲每個單獨的對象觸發更新。有沒有一種方法可以隱式地爲所有屬性getter和setter設置某種監聽器?
我知道這個代碼犯規存在,但.NET有辦法監視的對象,看它是否已經改變。
[OnChange=ObjectChanged()] //maybe this way
public class MyClass
{
bool modified {get; set;}
public MyClass() : OnChange(ObjectChanged) //or this way
{
}
private void ObjectChanged()
{
modified = true;
}
}
正如我所提到的,我不想更新每個setter或複製什麼實體框架。
可能重複[如何檢查對象是否已更改?](https://stackoverflow.com/questions/7952616/how-to-check-if-an-object-has-changed) – Adam
@亞姆請在建議它是基於標題的重複之前閱讀該問題。 –
@DanHastings,或者閱讀*答案*不僅僅是問題,以確定它是否足夠接近您的問題,以指向正確的方向。重複並不意味着問題是相同的 - 它也可以是相同的答案 – Jamiec