【发布时间】:2013-10-31 10:14:12
【问题描述】:
我有:
(1)枚举类型:
public enum Types : int
{
[ParametrizedContentTypeAttribute(typeOf(Type1ParamEnum))]
Type1 = 10,
[ParametrizedContentTypeAttribute(typeOf(Type2ParamEnum))]
Type2 = 20,
[ParametrizedContentTypeAttribute(typeOf(Type3ParamEnum))]
Type3 = 30
}
(2)参数枚举
public enum Type1ParamEnum : int
{
Type1Param1 = 10,
Type1Param2 = 20,
Type1Param3 = 30
}
public enum Type2ParamEnum : int
{
Type2Param1 = 10,
Type2Param2 = 20,
Type2Param3 = 30
}
public enum Type3ParamEnum : int
{
Type3Param1 = 10,
Type3Param2 = 20,
Type3Param3 = 30
}
(3)自定义属性
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
public class ParametrizedContentTypeAttribute : DescriptionAttribute
{
public ParametrizedContentTypeAttribute(Type parametersType)
{
ParametersType = parametersType;
}
public Type ParametersType { get; private set; }
}
如果我从 1 中知道 Types 枚举成员的 Id,如何从 2 中获取 Enums 的可用成员列表?
【问题讨论】:
-
1 的 id 类型(你在这里是什么意思?)与 2 有什么关系(猜你的意思是 Type2ParamEnum)?您可以使用enum.GetValues 获取枚举值
-
"types of 1" - 表示来自 (2)Parameters Enums 的类型
-
枚举只是值,实际上是整数。您是否尝试定义二维枚举?
-
没错!类似于:拥有第一个枚举成员的 ID,我可以获得第二个、第三个...等的列表
标签: c# enums custom-attributes