我写一个使用大部分这些枚举存在于数据库中的表太多次枚举业务应用。问题出现在维护时,其中一个团队成员或后期开发人员在两个地方之一更改枚举成员值,使枚举未被同步。为了解决这个问题,我试图创建一个自定义枚举属性,当它发现一个枚举值不同步时抛出一些异常。
实现:
[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
}
问题:
问题是这样的属性构造从不执行!我试过用类替换枚举,发现它执行得很好,但是使用枚举,不行!
问题是,当自定义属性用于枚举时,它们的构造函数何时执行?
的可能重复的[属性类不调用构造函数(http://stackoverflow.com/questions/2470164/attribute-class-not-calling-constructor) – 2014-08-31 09:31:50
在我发布帖子之前,我通过这个帖子来了,但不幸的是它无法解决我的问题。 – Sisyphus 2014-08-31 09:35:53
遵循其他答案时不起作用? – 2014-08-31 09:36:43