在配置文件中创建自定义部分

时间:2012-11-05 05:59:00

标签: c# web-config app-config

我正在尝试在app.config文件中创建自定义部分

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="BlogSettings" type="ConsoleApplication1.BlogSettings,   
      ConsoleApplication1" />
  </configSections>
  <BlogSettings
    Price="10"
    title="BLACKswastik" />
</configuration> 

C#代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string title = BlogSettings.Settings.Title;

            Console.WriteLine(title);
            Console.ReadKey();
        }
    }

    public class BlogSettings : ConfigurationSection
    {
        private static BlogSettings settings
          = ConfigurationManager.GetSection("BlogSettings") as BlogSettings;

        public static BlogSettings Settings
        {
            get
            {
                return settings;
            }
        }

        [ConfigurationProperty("Price"
          , DefaultValue = 20
          , IsRequired = false)]
        [IntegerValidator(MinValue = 1
          , MaxValue = 100)]
        public int Price
        {
            get { return (int)this["Price"]; }
            set { this["Price"] = value; }
        }


        [ConfigurationProperty("title"
          , IsRequired = true)]
        [StringValidator(InvalidCharacters = "  ~!@#$%^&*()[]{}/;’\"|\\"
          , MinLength = 1
          , MaxLength = 256)]
        public string Title
        {
            get { return (string)this["title"]; }
            set { this["title"] = value; }
        }
    }
}

但是当我运行此代码时,我收到此错误:

  

'ConsoleApplication1.BlogSettings'的类型初始化程序引发了一个   异常。

请告诉我,我做错了什么。

2 个答案:

答案 0 :(得分:3)

你应该在CodeProject上查看Jon Rista关于.NET 2.0配置的三部分系列文章。

强烈推荐,写得很好,非常有帮助!这将使您全面了解.NET配置系统。

菲尔·哈克(Phil Haack)也有一篇很棒的博文Three easy steps to a custom configuration section,可以让你快速开始构建自己的自定义配置文件。

要设计自己的自定义部分,还有一个名为Configuration Section Designer的便捷工具(Visual Studio加载项),它可以让您轻松简单地创建自己的自定义部分,并使其构建所有必要的部分用于处理该自定义部分的代码。

答案 1 :(得分:0)

将其移出配置部分

 <BlogSettings
    Price="10"
    title="BLACKswastik" />

您创建了一个新的配置引用,因此它现在可以成为自己的节点。