internal void RemoveRewriteRuleInternal(string ruleName)
        {
            lockRewrites.AcquireWriterLock(0);
            Rewrites.RemoveByName(ruleName);
            lockRewrites.ReleaseWriterLock();

            lockRedirects.AcquireWriterLock(0);
            Redirects.RemoveByName(ruleName);
            lockRedirects.ReleaseWriterLock();
        }
 internal void InsertRewriteRuleBeforeInternal(string positionRuleName, string ruleName, RewriteRule rewriteRule)
 {
     if (rewriteRule.Redirect == RedirectOption.None)
     {
         lockRewrites.AcquireWriterLock(0);
         Rewrites.InsertRuleBeforeName(positionRuleName, ruleName, rewriteRule);
         lockRewrites.ReleaseWriterLock();
     }
     else
     {
         lockRedirects.AcquireWriterLock(0);
         Redirects.InsertRuleBeforeName(positionRuleName, ruleName, rewriteRule);
         lockRedirects.ReleaseWriterLock();
     }
 }
 internal void ReplaceRewriteRuleInternal(string ruleName, RewriteRule rewriteRule)
 {
     if (rewriteRule.Redirect == RedirectOption.None)
     {
         lockRewrites.AcquireWriterLock(0);
         Rewrites.ReplaceRuleByName(ruleName, rewriteRule);
         lockRewrites.ReleaseWriterLock();
     }
     else
     {
         lockRedirects.AcquireWriterLock(0);
         Redirects.ReplaceRuleByName(ruleName, rewriteRule);
         lockRedirects.ReleaseWriterLock();
     }
 }
 internal void AddRewriteRuleInternal(RewriteRule rewriteRule)
 {
     if (rewriteRule.Redirect == RedirectOption.None)
     {
         lockRewrites.AcquireWriterLock(0);
         Rewrites.Add(rewriteRule);
         lockRewrites.ReleaseWriterLock();
     }
     else
     {
         lockRedirects.AcquireWriterLock(0);
         Redirects.Add(rewriteRule);
         lockRedirects.ReleaseWriterLock();
     }
 }