动态添加和删除数据注释属性

发布于 2024-12-08 20:31:40 字数 488 浏览 0 评论 0原文

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

无论如何,我们开始吧: 我有一个代表一些模型数据的类。假设它代表一个包裹/盒子/纸箱。

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

现在,如果我希望它显示为“纸箱名称”,我唯一的选择就是对其进行子键入。或者使用一个单独的类来对该类进行注释。我的困境是一些字段名称是用户可配置的,因此我不能有静态定义!

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

所以我只需要知道是否有一种方法可以动态添加属性? 动态创建一个匿名类型,对原始类型进行子类化,然后使用反射添加属性? 或者我还有哪些其他选择,我是否需要以某种方式实现不同的注释提供程序?

I have a little bit of a curve ball for you. Maybe just a design issue...maybe even something as simple as me not understanding Data annotation providers.

Anyway here we go:
I have a class which represents some model data. Let's say it represents a package/box/carton.

It actually represents all of these things so I use the class in several different views. Sometimes I want the attribute of the field Package_Description to be
So that it shows up as Box Number : input box here.

Now if i want it to appear as "Carton Name" my only option would be to sub type it. Or use a separate class to have the annotations for this class. My quandary is that some of the field names are user configurable and therefore I cannot have a static definition!

(By the way i am using third party librarys [Telerik MVC Grid] do display these field names so i cannot change the fact that it's looking at data annotation )

So I just need to know is there a way to add attributes dynamically?
Create an anonymous type on the fly, sub class the original and then add attributes using reflection?
Or what other options are open to me, do I need to somehow implement a different annotation provider?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疯到世界奔溃 2024-12-15 20:31:40

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

可以在运行时创建一个新类型(不是匿名类型),但我认为这不是一个好主意。我确信无论您使用什么组件,它都允许您明确指定外观。

Attributes are part of the definition of the type. Because of that, you can't modify attributes of existing classes during runtime.

You could create a new type during runtime (not an anonymous type), but I think that's not such a good idea. I'm sure whatever component you're using, it allows you to specify the appearance explicitly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文