1

我正在尝试在 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' 的类型初始化程序引发了异常。

请告诉我我在做什么错。

4

2 回答 2

3

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

强烈推荐,写得很好,非常有帮助!这将使您对 .NET 配置系统有一个透彻的了解。

Phil Haack 也有一篇很棒的博客文章自定义配置部分的三个简单步骤,它将让您快速开始构建自己的自定义配置部分。

要设计您自己的自定义部分,还有一个名为Configuration Section Designer的便捷工具(Visual Studio 插件),它可以让您轻松轻松地创建您自己的自定义部分,并让它构建处理该自定义部分所需的所有代码部分。

于 2012-11-05T06:09:57.010 回答
0

将其移出配置部分

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

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

于 2012-11-05T06:02:52.153 回答