2010年2月24日星期三

BlogEngine 配置

使用 ConfigurationSection 创建自定义配置节

1.创建自定义配置节处理程序

namespace BlogEngine.Core.Providers
{
  /// <summary>
  /// A configuration section for web.config.
  /// </summary>
  /// <remarks>
  /// In the config section you can specify the provider you
  /// want to use for BlogEngine.NET.
  /// </remarks>
  public class BlogProviderSection : ConfigurationSection
  {

    /// <summary>
    /// A collection of registered providers.
    /// </summary>
    [ConfigurationProperty("providers")]
    public ProviderSettingsCollection Providers
    {
      get { return (ProviderSettingsCollection)base["providers"]; }
    }

    /// <summary>
    /// The name of the default provider
    /// </summary>
    [StringValidator(MinLength = 1)]
    [ConfigurationProperty("defaultProvider", DefaultValue = "XmlBlogProvider")]
    public string DefaultProvider
    {
      get { return (string)base["defaultProvider"]; }
      set { base["defaultProvider"] = value; }
    }

  }

2.向 ASP.NET 配置文件添加自定义节处理程序

  (将 sectionGroup 元素和 section 元素添加到 Web.config 文件的 configSections 元素中。正是此声明将自定义节处理程序与节名关联。将 section 元素嵌套在 sectionGroup 中是可选的,但是建议这样做,以便更好地组织配置数据。)

  <configSections>
    <sectionGroup name="BlogEngine">
      <section name="blogProvider" requirePermission="false" type="BlogEngine.Core.Providers.BlogProviderSection, BlogEngine.Core" allowDefinition="MachineToApplication" restartOnExternalChanges="true"/>
    </sectionGroup>
  </configSections>

  <BlogEngine>
    <blogProvider defaultProvider="XmlBlogProvider">
      <providers>
        <add name="XmlBlogProvider" type="BlogEngine.Core.Providers.XmlBlogProvider, BlogEngine.Core"/>
        <add name="MSSQLBlogProvider" type="BlogEngine.Core.Providers.MSSQLBlogProvider, BlogEngine.Core"/>
      </providers>
    </blogProvider>
  </BlogEngine>
发表评论