public static void RegisterBuildProvider(string extension, Type providerType)
 {
     if (string.IsNullOrEmpty(extension))
     {
         throw ExceptionUtil.ParameterNullOrEmpty("extension");
     }
     if (providerType == null)
     {
         throw new ArgumentNullException("providerType");
     }
     if (!typeof(System.Web.Compilation.BuildProvider).IsAssignableFrom(providerType))
     {
         throw ExceptionUtil.ParameterInvalid("providerType");
     }
     BuildManager.ThrowIfPreAppStartNotRunning();
     s_dynamicallyRegisteredProviders[extension] = new CompilationBuildProviderInfo(providerType);
 }
        public static void RegisterBuildProvider(string extension, Type providerType)
        {
            if (String.IsNullOrEmpty(extension))
            {
                throw ExceptionUtil.ParameterNullOrEmpty("extension");
            }
            if (providerType == null)
            {
                throw new ArgumentNullException("providerType");
            }
            if (!typeof(BuildProvider).IsAssignableFrom(providerType))
            {
                //
                throw ExceptionUtil.ParameterInvalid("providerType");
            }
            BuildManager.ThrowIfPreAppStartNotRunning();

            // Last call wins. If a user wants to use a different provider they can always provide an
            // override in the app's config.
            s_dynamicallyRegisteredProviders[extension] = new CompilationBuildProviderInfo(providerType);
        }