MVC 2 & TypeConverters, получить тип назначения в ConvertFrom, где контекст равен нулю - PullRequest
1 голос
/ 26 октября 2010

У меня есть TypeConverter в базовом классе в моем проекте.

[TypeConverter(typeof(CodeTypeConverter))]
abstract class CodeBase

У меня есть несколько классов, которые наследуют эту базу

class TitleCode : CodeBase
class PreferenceCode : CodeBase

Когда объект, вызывающий преобразователь типа (ValueProvider.ConvertSimpleType), не создает контекст, и поэтому ConvertFrom не информируется о типе назначения, поэтому он может выполнять преобразование.

public override object ConvertFrom(
  ITypeDescriptorContext context, // this is null
  CultureInfo culture,
  object value)

Кто-нибудь сталкивался с этой проблемой? И если так, у вас есть работа вокруг?

1 Ответ

0 голосов
/ 10 ноября 2010

Мы сделали это в конце концов;

  1. получение TypeConverter для объекта
  2. создание прокси-класса контекста, реализующего ITypeDescriptorContext
  3. создание дескриптора свойства с обязательным типом набора

проверка на нулевой контекст была добавлена ​​в метод CanConvertFrom, для случаев, таких как выше

Это немного упущено MS, мне кажется, что тип, к которому вы хотите конвертировать, должен быть доступен. Этот обходной путь работает только тогда, когда используется реализованный нами ModelBinder.

Ах, хорошо, я преодолел это

...