【发布时间】:2014-08-31 09:26:30
【问题描述】:
意图:
我正在编写一个使用多个枚举的业务应用程序,其中大多数枚举也存在于数据库的表中。当团队成员之一或后期开发人员在两个位置之一更改枚举成员值而导致枚举不同步时,问题就出现在维护中。为了解决这个问题,我尝试创建一个自定义枚举属性,当它发现枚举值不同步时会引发一些异常。
实施:
[AttributeUsage(AttributeTargets.Enum)]
public class EnumSyncAtrribute : Attribute
{
public EnumSyncAtrribute(Type databaseAccessType, Type enumType))
{
// Code that uses that databaseAccessType to access the database to get
// enum values then compare it to values of enumType , goes here.
}
}
然后目标枚举标记如下
[EnumSyncAtrribute(typeof(MyDataBaseAccess), typeof(MyEnum))]
public enum MyEnum
{
value1 = 0,
value2 = 1,
value3 = 2
}
问题:
问题是这个属性构造函数永远不会执行!我试过用 Classes 替换 Enums,发现它执行得很好,但是用 Enums,不行!
问题是,当自定义属性用于枚举时,它们的构造函数什么时候执行?
【问题讨论】:
-
我在发帖之前就来到了这个帖子,但不幸的是它无法解决我的问题。
-
跟随其他答案时什么不起作用?
-
对不起,我不明白你的意思。
-
那篇帖子为什么没有解决您的问题?
标签: c# custom-attribute