C# 如何在Castle.ActiveRecord中使用ValidateCIMAL属性?

C# 如何在Castle.ActiveRecord中使用ValidateCIMAL属性?,c#,activerecord,castle-activerecord,C#,Activerecord,Castle Activerecord,我有一个继承了ActiveRecordValidationBase的类,该类包含以下属性: [Property] [ValidateDecimal] public Decimal UnitCost { get; set; } 我还有一个UnitCostTextBox,它接受所述UnitCost的输入 我想做的是使用Castle的验证器执行一次验证。然而,似乎在我将UnitCodeTextBox.Text传递给我的对象之前,我需要首先将其转换为十进制 如果输入错误,将引发异常。因此,这意味着在将

我有一个继承了
ActiveRecordValidationBase
的类,该类包含以下属性:

[Property]
[ValidateDecimal]
public Decimal UnitCost { get; set; }
我还有一个UnitCostTextBox,它接受所述UnitCost的输入

我想做的是使用Castle的验证器执行一次验证。然而,似乎在我将
UnitCodeTextBox.Text
传递给我的对象之前,我需要首先将其转换为十进制

如果输入错误,将引发异常。因此,这意味着在将字符串移交给Castle.ActiveRecord之前,我仍然需要执行正则表达式验证,并将字符串转换为十进制类型

这难道不意味着有一个
[ValidateDecimal]
是多余的,因为我已经清理了单位成本


我想知道你们是怎么做到的?我在谷歌上搜索了一些示例,但大多数示例只处理
[ValidateNonEmpty]
[ValidateEmail]
,它们都是字符串,而不是不同的数据类型

缺少的是绑定部分(实际上是手动执行的)。Castle.Components.Binder和Castle.Components.Validator一起用于将字符串输入(例如HTML表单)自动绑定和验证为强类型对象

MonoRail通过和AR特定的


在WebForms应用程序中,您必须自己实现绑定+验证(当然,您可以使用Castle.Components.Binder和Castle.Components.Validator)

对不起,这是asp.net 3.5 WebFormssory提供的最新答案!哈,不用担心,新年快乐!