internal ConfigurationSectionManageabilityProvider CreateManageabilityProvider() { IDictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); foreach (ConfigurationElementManageabilityProviderData data in this.ManageabilityProviders) { ConfigurationElementManageabilityProvider subManageabilityProvider = data.CreateManageabilityProvider(); subProviders.Add(data.TargetType, subManageabilityProvider); } return((ConfigurationSectionManageabilityProvider)Activator.CreateInstance(this.Type, subProviders)); }
/// <summary> /// <para>This method supports the Enterprise Library Manageability Extensions infrastructure and is not intended to /// be used directly from your code.</para> /// Adds the ADM instructions that describe the policies that can be used to override the configuration /// information for the Exception Handling Application Block. /// </summary> /// <seealso cref="ConfigurationSectionManageabilityProvider.AddAdministrativeTemplateDirectives(AdmContentBuilder, ConfigurationSection, IConfigurationSource, String)"/> protected override void AddAdministrativeTemplateDirectives(AdmContentBuilder contentBuilder, ExceptionHandlingSettings configurationSection, IConfigurationSource configurationSource, String sectionKey) { contentBuilder.StartPolicy(Resources.SectionPolicyName, sectionKey); contentBuilder.EndPolicy(); foreach (ExceptionPolicyData policy in configurationSection.ExceptionPolicies) { contentBuilder.StartCategory(policy.Name); { String exceptionTypesKey = sectionKey + @"\" + PoliciesKeyName + @"\" + policy.Name + @"\" + PolicyTypesPropertyName; foreach (ExceptionTypeData exceptionType in policy.ExceptionTypes) { String exceptionTypeKey = exceptionTypesKey + @"\" + exceptionType.Name; contentBuilder.StartPolicy(String.Format(CultureInfo.CurrentCulture, Resources.ExceptionTypePolicyNameTemplate, exceptionType.Name), exceptionTypeKey); { contentBuilder.AddDropDownListPartForEnumeration <PostHandlingAction>(Resources.ExceptionTypePostHandlingActionPartName, PolicyTypePostHandlingActionPropertyName, exceptionType.PostHandlingAction); contentBuilder.AddTextPart(Resources.ExceptionTypeHandlersPartName); String exceptionHandlersKey = exceptionTypeKey + @"\" + PolicyTypeHandlersPropertyName; foreach (ExceptionHandlerData handler in exceptionType.ExceptionHandlers) { ConfigurationElementManageabilityProvider subProvider = GetSubProvider(handler.GetType()); if (subProvider != null) { AddAdministrativeTemplateDirectivesForElement <ExceptionHandlerData>(contentBuilder, handler, subProvider, configurationSource, exceptionHandlersKey); } } } contentBuilder.EndPolicy(); } } contentBuilder.EndCategory(); } }
public ConfigurationSectionManageabilityProvider CreateConfigurationSectionManageabilityProvider( ConfigurationSectionManageabilityProviderData manageabilityProviderData) { IDictionary <Type, ConfigurationElementManageabilityProvider> subProviders = new Dictionary <Type, ConfigurationElementManageabilityProvider>(); foreach (ConfigurationElementManageabilityProviderData subProviderData in manageabilityProviderData.ManageabilityProviders) { ConfigurationElementManageabilityProvider subManageabilityProvider = CreateConfigurationElementManageabilityProvider(subProviderData); subProviders.Add(subProviderData.TargetType, subManageabilityProvider); } return((ConfigurationSectionManageabilityProvider)Activator.CreateInstance(manageabilityProviderData.Type, subProviders)); }
public ConfigurationElementManageabilityProviderWrapper(ConfigurationElementManageabilityProvider wrappedProvider) { this.wrappedProvider = wrappedProvider; }
/// <devdoc> /// ADM templates for caching are different from the other blocks' templates to match the configuration console's /// user experience. Instead of having separate categories with policies for cache managers, backing stores and /// encryption providers, the policy for a cache manager includes the parts for its backing store and eventual /// encryption provider. /// </devdoc> void AddAdministrativeTemplateDirectivesForCacheManagers(AdmContentBuilder contentBuilder, CacheManagerSettings configurationSection, IConfigurationSource configurationSource, String sectionKey) { String cacheManagersKey = sectionKey + @"\" + CacheManagersKeyName; String backingStoresKey = sectionKey + @"\" + BackingStoresKeyName; String encryptionProvidersKey = sectionKey + @"\" + EncryptionProvidersKeyName; contentBuilder.StartCategory(Resources.CacheManagersCategoryName); { foreach (CacheManagerDataBase cacheManagerDataBase in configurationSection.CacheManagers) { if (cacheManagerDataBase is CustomCacheManagerData) { customManageabilityProvider.AddAdministrativeTemplateDirectives(contentBuilder, cacheManagerDataBase, configurationSource, cacheManagersKey); } else { String cacheManagerPolicyKey = cacheManagersKey + @"\" + cacheManagerDataBase.Name; contentBuilder.StartPolicy(String.Format(CultureInfo.InvariantCulture, Resources.CacheManagerPolicyNameTemplate, cacheManagerDataBase.Name), cacheManagerPolicyKey); { if (cacheManagerDataBase is CacheManagerData) { CacheManagerData cacheManagerData = (CacheManagerData)cacheManagerDataBase; contentBuilder.AddNumericPart(Resources.CacheManagerExpirationPollFrequencyInSecondsPartName, CacheManagerExpirationPollFrequencyInSecondsPropertyName, cacheManagerData.ExpirationPollFrequencyInSeconds); contentBuilder.AddNumericPart(Resources.CacheManagerMaximumElementsInCacheBeforeScavengingPartName, CacheManagerMaximumElementsInCacheBeforeScavengingPropertyName, cacheManagerData.MaximumElementsInCacheBeforeScavenging); contentBuilder.AddNumericPart(Resources.CacheManagerNumberToRemoveWhenScavengingPartName, CacheManagerNumberToRemoveWhenScavengingPropertyName, cacheManagerData.NumberToRemoveWhenScavenging); // append the cache manager's backing store parts contentBuilder.AddTextPart(Resources.BackingStoreSettingsPartName); CacheStorageData backingStoreData = configurationSection.BackingStores.Get(cacheManagerData.CacheStorage); ConfigurationElementManageabilityProvider backingStoreDataManageablityProvider = GetSubProvider(backingStoreData.GetType()); AddAdministrativeTemplateDirectivesForElement(contentBuilder, backingStoreData, backingStoreDataManageablityProvider, configurationSource, backingStoresKey); // append the backing store's encryption provider parts if (!String.IsNullOrEmpty(backingStoreData.StorageEncryption)) { contentBuilder.AddTextPart(Resources.StorageEncryptionProviderSettingsPartName); StorageEncryptionProviderData encryptionProviderData = configurationSection.EncryptionProviders.Get(backingStoreData.StorageEncryption); ConfigurationElementManageabilityProvider encryptionProviderDataManageabilityProvider = GetSubProvider(encryptionProviderData.GetType()); AddAdministrativeTemplateDirectivesForElement(contentBuilder, encryptionProviderData, encryptionProviderDataManageabilityProvider, configurationSource, encryptionProvidersKey); } } } contentBuilder.EndPolicy(); } } } contentBuilder.EndCategory(); }