internal bool ConfigureObject(ICustomAttributeProvider t, ICatalogObject obj, ICatalogCollection coll, string prefix, Hashtable cache)
        {
            bool flag = false;

            object[] customAttributes = t.GetCustomAttributes(true);
            cache[prefix]                = obj;
            cache[prefix + "Type"]       = t;
            cache[prefix + "Collection"] = coll;
            cache["CurrentTarget"]       = prefix;
            foreach (object obj2 in customAttributes)
            {
                if (obj2 is IConfigurationAttribute)
                {
                    try
                    {
                        IConfigurationAttribute attribute = (IConfigurationAttribute)obj2;
                        if (attribute.IsValidTarget(prefix) && attribute.Apply(cache))
                        {
                            flag = true;
                        }
                    }
                    catch (Exception exception)
                    {
                        if ((exception is NullReferenceException) || (exception is SEHException))
                        {
                            throw;
                        }
                        throw new RegistrationException(Resource.FormatString("Reg_ComponentAttrErr", obj.Name(), obj2), exception);
                    }
                }
            }
            return(flag);
        }
        internal bool AfterSaveChanges(ICustomAttributeProvider t, ICatalogObject obj, ICatalogCollection coll, string prefix, Hashtable cache)
        {
            bool flag = false;

            object[] customAttributes = t.GetCustomAttributes(true);
            cache[prefix]                = obj;
            cache[prefix + "Type"]       = t;
            cache[prefix + "Collection"] = coll;
            cache["CurrentTarget"]       = prefix;
            foreach (object obj2 in customAttributes)
            {
                if (obj2 is IConfigurationAttribute)
                {
                    IConfigurationAttribute attribute = (IConfigurationAttribute)obj2;
                    if (attribute.IsValidTarget(prefix) && attribute.AfterSaveChanges(cache))
                    {
                        flag = true;
                    }
                }
            }
            return(flag);
        }