4

構成セクションで複数の列挙値を設定する方法はありますか?

.net で行うようにobject.Filter = Filter.Update | Filter.Create;

<wacther filter="update, created"/>

そのようなものはサポートされていますか?

4

3 に答える 3

10

それは箱から出してすぐに動作します:

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"/>

プリント: フー、バー

于 2012-11-01T11:56:14.760 に答える
4

フラグ列挙型を定義します。

[Flags]
enum Filter
{
    None = 0,
    Update = 1,
    Create = 2
}

構成ファイルから列挙型の文字列があるとします。

var enumString = "update, create";

したがって、結果を得ることができます:

var result = (Filter) Enum.Parse(typeof (Filter), enumString, true);
于 2012-11-01T10:05:59.320 に答える