0

这是我定义的枚举的代码片段:

public enum DataTypes
{
    /// <summary>
    /// Base class.
    /// </summary>
    Object = 0,

    /// <summary>
    /// True / false.
    /// </summary>
    Boolean = 1,

    /// <summary>
    /// Signed 8 bit integer.
    /// </summary>
    [CLSCompliant(false)]
    Int8 = 2,

如何测试项目的 CLSCompliant 真/假?

4

1 回答 1

1

如何测试项目的 CLSCompliant 真/假?

你得到相关的FieldInfousing Type.GetField,然后使用MemberInfo.IsDefined.

示例代码:

using System;
using System.ComponentModel;
using System.Globalization;

public enum DemoEnum
{
    Foo,
    Bar,
    [Description("This is a baz")]
    Baz
}

class Test
{
    static void Main()
    {
        foreach (var name in Enum.GetNames(typeof(DemoEnum)))
        {
            var field = typeof(DemoEnum).GetField(name);
            Console.WriteLine("{0}: {1}", name,
                              field.IsDefined(typeof(DescriptionAttribute),
                                              false));
        }
    }
}

如果您需要实际的属性值,则需要使用MemberInfo.GetCustomAttributes

于 2013-07-03T15:26:35.460 回答