Dans une classe affaires, j'ai :
class Employee{
public Employee() {
m_Manager = new Lazy<Manager>( () => return myRepository.GetManager(ManagerId); );
}
public int ManagerId { get; set;}
private Lazy<Manager> m_Manager;
public Manager Manager {
get {
return m_Manager.Value;
}
}
}
Cela fonctionne correctement, le dépôt personnalisé est appelé uniquement si vous accédez à la propriété Manager. Maintenant, je veux "réinitialiser" la propriété de mon manager si le ManagerId a changé. Comment faire ?
Je peux faire :
class Employee{
public Employee() {
m_Manager = new Lazy<Manager>( () => return myRepository.GetManager(ManagerId); );
}
private int m_ManagerId;
public int ManagerId {
get { return m_ManagerId;}
set {
if(m_ManagerId != value)
{
m_ManagerId = value;
m_Manager = new Lazy<Manager>( () => return myRepository.GetManager(ManagerId); );
}
}
}
private Lazy<Manager> m_Manager;
public Manager Manager {
get {
return m_Manager.Value;
}
}
}
Y a-t-il une façon plus propre de le faire ? N'y a-t-il pas un m_Manager.Reset()
ou quelque chose comme ça ?