我試圖添加一個功能,如果應用程序設置設置爲不保存,則數據不能保存。我有很多DataManagers在我的應用程序中充當數據訪問層。我的計劃是創建2個自定義屬性[DataRetention("PolicyNameHere")]
和[InspectDataRetention]
,這些屬性應該應用於我的數據管理器上的方法,並且如果存在,應用程序應該檢查我的[DataRetention]
上的RetentionSetting屬性是否設置爲DoNotSave,如果是,則忽略。例如:阻止方法執行的C#屬性
public class User
{
public string Name {get; set;}
[DataRetention("PII")]
public long SSN {get; set;}
}
public class UserManager
{
public User GetUser(int userId);
[InspectDataRetention]
public void UpdateUser(User user);
public void Delete(User user);
}
在上面的例子中,當UpdateUser兩個被稱爲上的UserManager,應用程序將首先檢查對象並搜索任意[DataRetention]的屬性。然後它會抓取屬性的RetentionSetting屬性(因爲屬性的構造函數會設置保留設置),如果它設置爲DoNotSave,那麼它會將該字段重置爲其默認值(在此情況下爲0)。但是,如果用戶類進行了修改,如下圖所示:
[DataRetention("PII")]
public class User
{
public string Name {get; set;}
public long SSN {get; set;}
}
然後,配置DoNotSave時,UpdateUser兩個應該簡單地返回null(不執行更新方法
這可能與一個自定義屬性如果?不,有一個特定的接口的攔截器的外部(即RetainableDataManager:IDataManager,並有我所有的數據管理實現了相同的IDataManager接口)有沒有辦法做到這一點的行爲
- MVC4應用 。
- 數據管理員是在數據層(由波蘇斯也是)
我希望我可以將其添加到我的項目中,但我對現在可以使用的技術稍有限制。謝謝你的想法。 – Mike