动态添加和删除Data Annotation属性

时间:2011-10-10 04:21:13

标签: asp.net-mvc-2 reflection dynamic attributes data-annotations

我有一点曲线球给你。也许只是一个设计问题......甚至可能就像我不理解数据注释提供者一样简单。

无论如何,我们走了: 我有一个代表一些模型数据的类。假设它代表一个包/盒/纸盒。

它实际上代表了所有这些东西,因此我在几个不同的视图中使用该类。有时我想要字段Package_Description的属性 因此它显示为Box Number:输入框

现在,如果我希望它显示为“纸箱名称”,我唯一的选择是子类型。或者使用单独的类来为此类添加注释。我的窘境是一些字段名称是用户可配置的,因此我不能有静态定义!

(顺便说一句,我正在使用第三方库[Telerik MVC Grid]显示这些字段名称,因此我无法改变它正在查看数据注释的事实)

所以我只需要知道有没有办法动态添加属性? 动态创建匿名类型,子类原始,然后使用反射添加属性? 或者对我开放的其他选项,我是否需要以某种方式实现不同的注释提供程序?

1 个答案:

答案 0 :(得分:1)

属性是类型定义的一部分。因此,您无法在运行时修改现有类的属性。

可以在运行时创建一个新类型(不是匿名类型),但我认为这不是一个好主意。我确定你正在使用的任何组件,它允许你明确指定外观。