A simple way to build up a list of methods that will all be called at a specific point
I use this for 2 things:
- to schedule tests on the data to be run just before a commit to the database, e.g. to assess data integrity
- to make updates to repsonse data after a commit to the database, e.g. to return identity values set by the database
public interface IExecutionList : IList
{
void Execute();
}
public class ExecutionList : List, IExecutionList
{
public void Execute()
{
this.ForEach(x => x());
this.Clear();
}
}
private void Test(Container container)
{
container.Register();
IExecutionList executionList = container.GetInstance();
executionList.Add(() => Debug.Print("1"));
executionList.Add(() => Debug.Print("2"));
executionList.Add(() => Debug.Print("3"));
executionList.Add(() => Debug.Print("4"));
executionList.Execute();
}