ProvidersHelper.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / ProvidersHelper.cs / 2 / ProvidersHelper.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.Configuration 
{ 
    using System.Configuration;
    using System.Configuration.Provider; 
    using System.Web.Compilation;
    using System.Collections.Specialized;
    using System;
    using System.Security; 
    using System.Security.Permissions;
 
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 
    public static class ProvidersHelper {
        /////////////////////////////////////////////////////////////////////////////// 
        ///////////////////////////////////////////////////////////////////////////////
        [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Low)]
        public static ProviderBase InstantiateProvider(ProviderSettings providerSettings, Type providerType)
        { 
            ProviderBase provider = null;
            try { 
                string pnType = (providerSettings.Type == null) ? null : providerSettings.Type.Trim(); 
                if (string.IsNullOrEmpty(pnType))
                    throw new ArgumentException(SR.GetString(SR.Provider_no_type_name)); 
                Type t = ConfigUtil.GetType(pnType, "type", providerSettings, true, true);

                if (!providerType.IsAssignableFrom(t))
                    throw new ArgumentException(SR.GetString(SR.Provider_must_implement_type, providerType.ToString())); 
                provider = (ProviderBase)HttpRuntime.CreatePublicInstance(t);
 
                // Because providers modify the parameters collection (i.e. delete stuff), pass in a clone of the collection 
                NameValueCollection pars = providerSettings.Parameters;
                NameValueCollection cloneParams = new NameValueCollection(pars.Count, StringComparer.Ordinal); 
                foreach (string key in pars)
                    cloneParams[key] = pars[key];
                provider.Initialize(providerSettings.Name, cloneParams);
            } catch (Exception e) { 
                if (e is ConfigurationException)
                    throw; 
                throw new ConfigurationErrorsException(e.Message, providerSettings.ElementInformation.Properties["type"].Source, providerSettings.ElementInformation.Properties["type"].LineNumber); 
            }
 
            return provider;
        }

        [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Low)] 
        public static void InstantiateProviders(ProviderSettingsCollection configProviders, ProviderCollection providers, Type providerType)
        { 
            foreach (ProviderSettings ps in configProviders) { 
                providers.Add(InstantiateProvider(ps, providerType));
            } 
        }
    }
}
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK