public void Reset() { lock (_syncLock) { // Keep the root node. var rootNode = _currentState.RootNode; try { // Build again. _newState = new SiteMapProviderState(); AddNode(rootNode); BuildStaticSiteMap(rootNode); _newState.RootNode = rootNode; // New state has been successfully generated so use it. _currentState = _newState; } finally { // Don't leave in a partial state. _newState = null; } } }
private void BuildStaticSiteMap() { // Build. try { _newState = new SiteMapProviderState(); _newState.RootNode = CreateRootNode(); BuildStaticSiteMap(_newState.RootNode); // New state has been successfully generated so use it. _currentState = _newState; } finally { // Don't leave in a partial state. _newState = null; } }