public void Run() { Initialize(); foreach (var action in actions) { viewer.CompileItemsTree.SelectedNode = viewer.CompileItemsTree.Nodes[action.Index]; typeof(CompileOrderViewer).InvokeMember(action.Method, BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance, null, viewer, new object[] { viewer, EventArgs.Empty }); } ValidateOrder("Before re-open"); viewer.Dispose(); CloseSolution(); ReopenSolution(); ValidateOrder("After re-open"); CloseSolution(); }