protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DdlProviders.Items.Clear(); BlogProviderSection section = (BlogProviderSection)WebConfigurationManager.GetSection("BlogEngine/blogProvider"); BlogProviderCollection providers = new BlogProviderCollection(); ProvidersHelper.InstantiateProviders(section.Providers, providers, typeof(BlogProvider)); List <Blog> blogs = BlogService.Provider.FillBlogs(); foreach (Blog blog in blogs) { DdlBlogs.Items.Add(new ListItem(blog.Name, blog.Id.ToString())); } foreach (BlogProvider provider in providers) { // Don't add the current provider in use, that would be messy. if (provider.Name != section.DefaultProvider) { DdlProviders.Items.Add(provider.Name); } } } }
/// <summary> /// Retrieves the given provider from Web.config and attempts to instantiate it. /// </summary> /// <param name="ProviderName">The blog provider to instantiate.</param> /// <returns>A BlogProvider instance.</returns> public static BlogProvider CreateProvider(string ProviderName) { var section = (BlogProviderSection)WebConfigurationManager.GetSection("BlogEngine/blogProvider"); var _providers = new BlogProviderCollection(); ProvidersHelper.InstantiateProviders(section.Providers, _providers, typeof(BlogProvider)); return(_providers[ProviderName]); }