Changed the way the TLDRuleList is checked for expiration and availablity.
In the rules list iteration of the DomainName.FindMatchingTLDRule method, the static instance of the TLDRulesCache was referenced directly. This caused the CheckRuleList method to get called for every iteration (because of the get access method).
I introduced a new method on the TLDRulesCache to get the rules list which is used in the DomainName.FindMatchingTLDRule to get the list prior to the iteration.
Changed the way the TLDRuleList is checked for expiration and availablity.
In the rules list iteration of the DomainName.FindMatchingTLDRule method, the static instance of the TLDRulesCache was referenced directly. This caused the CheckRuleList method to get called for every iteration (because of the get access method). I introduced a new method on the TLDRulesCache to get the rules list which is used in the DomainName.FindMatchingTLDRule to get the list prior to the iteration.