У меня действительно простой сценарий, когда я просто хочу расширить функциональность System.ComponentModel.BooleanConverter
, чтобы он позволял использовать несколько опций, а не только true
и false
.Реализация пользовательского TypeConverter
Так, например, значений, как yes
, 1
, on
и т.д. являются такими же, как true
.
Я попытался перекрывая GetStandardValues()
метод, чтобы сделать быстрый тест, мое предположение в том, что если бы я вернулся коллекция всех моих конкретных значений, что вызов IsValid(string)
должен вернуться true
, если я прохожу в одном из моих определенных значений, но это делает похоже, не так. Должен ли я выполнять/отменять целую кучу дерьма, чтобы сделать это?
Мне интересно, стоит ли это, так как все, что мне действительно нужно, это функциональность IsValid()
. Или, может быть, есть лучший вариант, чем использовать TypeDescriptors
в первую очередь?
Спасибо за ответ Никола. После некоторого тестирования я обнаружил, что это не очень хороший способ решить мою проблему. Использование IsValid для тестирования строковых значений, подобных этому, не является хорошим решением для меня с моей стороны. Что происходит за кулисами, так это то, что .NET выдает исключение System.FormatException, если он не выполняет проверку, поэтому при использовании этого большого количества накладных расходов на дополнительный стек. – snappymcsnap