在Breeze中更改在验证器中查找DataProperty displayName的方式

在Breeze中更改在验证器中查找DataProperty displayName的方式,breeze,Breeze,在Validator类中,rootContext有一个displayName函数,用于在构造验证错误消息时查找显示名称。我将用户友好的显示名称存储在所有DataProperty的CustomProperties对象中,因此我希望displayName函数先查看该区域,再查看其他区域。据我所知,没有办法从验证器类重写rootContext来更改它。我唯一能想到的另一种方法是在构造验证器时在上下文中传入一个新的displayName函数,但为了做到这一点,我必须编写一个自定义元数据解析器,除非我缺少

在Validator类中,rootContext有一个displayName函数,用于在构造验证错误消息时查找显示名称。我将用户友好的显示名称存储在所有DataProperty的CustomProperties对象中,因此我希望displayName函数先查看该区域,再查看其他区域。据我所知,没有办法从验证器类重写rootContext来更改它。我唯一能想到的另一种方法是在构造验证器时在上下文中传入一个新的displayName函数,但为了做到这一点,我必须编写一个自定义元数据解析器,除非我缺少一些东西。你们有什么建议吗?

这是个好问题。这是没有很好的记录,但。。。目前,我只需在查询元数据后立即将执行自定义displayName函数产生的值直接复制到相应DataProperty或NavigationProperty的“displayName”属性上。我们将在下一个版本中记录“displayName”属性,但它现在可用


改进“displayName”发现过程的主题已经摆在我们面前,但我们还没有开始

这对我有效,我实现了它。因为我们的应用程序有很多不同的实体类型,有很多数据属性和导航属性,所以它并不理想。如果有一种方法可以扩展Breeze提供给所有验证器的rootContext,那就太好了。我可以做的另一件事是重写元数据解析,以便更改传递到验证器的上下文,但这似乎有些过分