0

我有一个非常简单的场景,我只想扩展 the 的功能,System.ComponentModel.BooleanConverter以便它允许多个选项,而不仅仅是trueand false

因此,例如yes,等值与 .相同。1ontrue

我尝试覆盖这些GetStandardValues()方法来进行快速测试,我的假设是,如果我返回了所有特定值的集合,如果我传入一个定义的值,则调用IsValid(string)应该返回该集合,true但情况似乎并非如此。我是否必须实施/覆盖一大堆废话才能做到这一点?

我想知道这是否值得,因为我真正需要的只是IsValid()功能。或者也许有比TypeDescriptors最初使用更好的选择?

4

1 回答 1

2

如果您“只需要IsValid功能”,那么只需覆盖它就足够了。但是,CanConvertFrom(Type)实际上,如果您只是想测试是否可以转换类型,则实际上应该覆盖该方法。某些基础设施类使用此方法,IsValid在这种情况下仅覆盖可能还不够。

对于布尔转换器,您还应该覆盖,如果您不打算使用该值,则ConvertFrom(object)只需返回。null否则,调用IsValid(依次调用CanConvertFrom)可能会失败。

于 2013-03-04T20:41:36.163 回答