C# 如何在另一个程序集中的对象上进行数据批注?

C# 如何在另一个程序集中的对象上进行数据批注?,c#,.net,validation,data-annotations,C#,.net,Validation,Data Annotations,我有一个抽象域对象,它被web和windows应用程序使用。此域对象与任何派生类一起位于旧命名空间中 对于我的web应用程序,我希望使用数据注释。通常我会为域对象创建一个分部类,并为其提供一个元数据类。但是,我无法触及域对象所在的名称空间,这就是我的问题所在 是否有任何解决方案可以为另一个命名空间中的域对象提供分部类/元数据?请记住,我根本无法触及域对象名称空间。DataAnnotations通过使用属性装饰类型上的属性,或者通过使用指向保存验证属性的实际类的MetadataTypeAttrib

我有一个抽象域对象,它被webwindows应用程序使用。此域对象与任何派生类一起位于旧命名空间中

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


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

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

如果不能触摸它,就不能使用数据注释。就这么简单。您可以尝试一些代码编织技术,例如在不接触代码的情况下更改程序集,但最终您仍然在接触它

您需要选择不同的验证框架。一个允许将验证配置与实际代码完全分离的配置:您显然需要,因为它允许您将验证放在(XML)配置文件中


祝你好运。

你可以做到这一点,这不是不可能的,也不是一件大家务

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


就这么简单。

想得也一样。谢谢我甚至尝试在不同的程序集中创建一个分部类,但与域对象具有相同的命名空间,然后在分部类上应用MetdataTypeAttribute,但随后出现了关于歧义的编译错误。我将看一看企业库验证应用程序块。刚刚看到这个问题有多古老。嗯,我今天真的要去墓地了。