コード例 #1
0
		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]];
			}
		}
コード例 #2
0
        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]]);
            }
        }