public static CA.IRule CreateOrGetProxy (Type ruleType) { if (!Utilities.IsGendarmeRule (ruleType)) throw new ArgumentException (AddinCatalog.GetString ("{0} is not a rule type because it does not implement IRule interface.", ruleType), "ruleType"); if (!cachedRules.ContainsKey (ruleType)) { // create `real' rule and cache it GF.IRule rule = (GF.IRule) Activator.CreateInstance (ruleType); cachedRules.Add (ruleType, rule); // create a proxy and cache it GendarmeRule proxy = new GendarmeRule (rule); boundProxies.Add (rule, proxy); return proxy; } else { // return from cache return boundProxies [cachedRules [ruleType]]; } }
public static CA.IRule CreateOrGetProxy(Type ruleType) { if (!Utilities.IsGendarmeRule(ruleType)) { throw new ArgumentException(AddinCatalog.GetString("{0} is not a rule type because it does not implement IRule interface.", ruleType), "ruleType"); } if (!cachedRules.ContainsKey(ruleType)) { // create `real' rule and cache it GF.IRule rule = (GF.IRule)Activator.CreateInstance(ruleType); cachedRules.Add(ruleType, rule); // create a proxy and cache it GendarmeRule proxy = new GendarmeRule(rule); boundProxies.Add(rule, proxy); return(proxy); } else { // return from cache return(boundProxies [cachedRules [ruleType]]); } }