ConfigurationSection多个枚举值

mim*_*imo 3 .net c# configuration configurationsection configurationelement

有没有办法在配置部分设置多个枚举值?

就像在.net中一样 object.Filter = Filter.Update | Filter.Create;

<wacther filter="update, created"/>
Run Code Online (Sandbox Code Playgroud)

是否支持这样的东西?

fsi*_*zzi 7

它只是开箱即用:

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var section = (MySection)ConfigurationManager.GetSection("mySection");
            Console.WriteLine(section.Enum);
        }
    }

    public class MySection : ConfigurationSection
    {
        [ConfigurationProperty("enum")]
        public MyEnum Enum
        {
            get { return (MyEnum)this["enum"]; }
            set { this["enum"] = value; }
        }
    }

    [Flags]
    public enum MyEnum
    {
        None = 0,
        Foo = 1,
        Bar = 2,
        Baz = 4
    }
}


<configSections>
  <section name="mySection" type="ConsoleApplication1.MySection, ConsoleApplication1"/>
</configSections>

<mySection enum="Foo, Bar"/>
Run Code Online (Sandbox Code Playgroud)

印刷品:Foo,Bar

  • 无论谁使用它,请注意它将尽可能组合标志,所以如果上面的逻辑在MyEnum中定义了Foz = 3,并且配置有标志,"Foo,Bar",它会将其解析为Foz. (2认同)