如何对另一个程序集中的对象进行数据注释?

发布于 2024-09-26 16:32:16 字数 347 浏览 6 评论 0原文

我有一个抽象域对象,它由网络Windows应用程序使用。该域对象与任何派生类一起位于旧的命名空间中。

对于我的网络应用程序,我想使用数据注释。通常我会为域对象创建一个部分类,并为其提供一个MetaData类。但是,我无法触及域对象所在的命名空间,这就是我的问题所在。

是否有任何解决方案可以为另一个命名空间中的域对象提供部分类/元数据?请记住,我根本无法触及域对象名称空间。

I have an abstract domain object that is consumed by both a web and windows application. This domain object sits in a an old namespace along with any derived classes.

For my web application I would like to use data annotations. Usually I would create a partial class to the domain object and provide it a MetaData class. However, I am unable to touch the namespace where the domain objects reside and there lies my problem.

Is there any solution for providing partial classes/metadata to domain objects in another namespace? Remember I can't touch the domain objects namespace at all.

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

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

发布评论

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

评论(2

等风来 2024-10-03 16:32:16

DataAnnotations 的工作原理是使用属性来装饰类型上的属性,或者使用指向保存验证属性的实际类的 MetadataTypeAttribute 来装饰实际类型。

如果你摸不到它,你就不能使用DataAnnotations。就这么简单。您可以尝试尝试一些代码编织技术,例如 CCI 来更改程序集而不接触代码,但最终你还在触摸它。

您需要选择不同的验证框架。允许将验证配置与实际代码完全分离的一种:您显然需要 企业库验证应用程序块,因为它允许您将验证放入 (XML) 配置文件中。

祝你好运。

DataAnnotations works by decorating properties on a type with attributes, or by decorating the actual type with a MetadataTypeAttribute that points at the actual class that holds the validation attributes.

If you can't touch it, you can't use DataAnnotations. It's as simple as that. You might try try some code weaving technique such as CCI to change the assembly without touching the code, but in the end you are still touching it.

You need to pick a different validation framework. One that allows to separate the validation configuration completely from the actual code: You clearly need Enterprise Library Validation Application Block, because it allows you to put the validations in a (XML) configuration file.

Good luck.

和我恋爱吧 2024-10-03 16:32:16

你实际上可以做到这一点,这并非不可能,也不是一项艰巨的任务。

只需创建一个新类,该类继承自您的域类并位于您的 Web 项目中。这将是您的视图模型。使用 MetadataTypeAttribute 为您刚刚创建的视图模型类赋予属性,该类引用包含描述验证、显示等数据属性的类。

就是这样,简单得像馅饼一样。

You can actually do this, its not impossible and its not a huge chore either.

Simply create a new class that inherits from your domain class and lives inside your web project. This will be your view model. Attribute the view model class you just created with a MetadataTypeAttribute that references the class containing the data attributes describing your validation, display etc..

That's it, simple as pie.

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