I have been your long-time user for the DotNetWikiBot framework and would like to ask and share couple suggestions I have adjusted your framework over time.
1. Please add [Serializable] attribute for Site, Page, PageList. The reason is because I implemented the Save & Load function for caching so that it would start up faster.
2. Please change back from Private to Public for userPass variable. My application uses multiple bots and multiple sites, and therefore both userName and userPass have to be set. If you are worried about security, I recommend you to implement it as a Properties with set only.
3. In GetPaths function, please add webReq.CookieContainer = new CookieContainer(); around line 278 in v2.94. There seems to be some instance when the cookies would be affected. I then late added foreach (Cookie cookie in webResp.Cookies)
cookies.Add(cookie); around line 321.
4. I adjusted the UndoLastEdits function to return bool. If undo is successful, it returns true, if not it returns false. I also added more error handling: if (pl.pages.Count < i) break; after line 1593.
5. ResolveRedirect function was adjusted to handle some special cases, I added this.lastRevisionID = null; This is needed so that it loads the corrected text, and reset the revisionID so that it loads the lastest rev of the redirected page, because sometimes I found out it loads the incorrect one in certain circumstances.