这是MSDN的解释
讲得太过简略了,哪位前辈能讲讲它们怎么初始化,初始化和被初始化集合的类型有什么要求吗?

解决方案 »

  1.   

    http://www.cnblogs.com/longe_mail/archive/2010/05/13/1734165.html
      

  2.   

    嗨,还是我自己来吧,竟然翻翻reflector就明白了,下次我还是多自己看看再提问。
    这是ProviderHelper的源码:public static class ProvidersHelper
    {
        public static ProviderBase InstantiateProvider(ProviderSettings providerSettings, Type providerType)
        {
            string str = providerSettings.Type;
            Type c = ...(str);
            ProviderBase base2 = (ProviderBase) HttpRuntime.CreatePublicInstance(c);//这里用到了反射            
            base2.Initialize(providerSettings.Name, config);
            return base2;
        }    public static void InstantiateProviders(ProviderSettingsCollection configProviders, ProviderCollection providers, Type providerType)
        {
            foreach (ProviderSettings settings in configProviders)
            {
                providers.Add(InstantiateProvider(settings, providerType));//这里的Add方法将InstantiateProvider的返回值ProviderBase加入到一个Hashtable字段中        }
        }
    }