2010-10-26 69 views
1

J'ai un TypeConverter sur la classe de base dans mon projet.MVC 2 & TypeConverters, Obtenez le type de destination dans ConvertFrom où le contexte est NULL

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

J'ai un certain nombre de classes qui héritent de cette base

class TitleCode : CodeBase 
class PreferenceCode : CodeBase 

Lorsque la chose qui appelle le convertisseur de type (ValueProvider.ConvertSimpleType), il ne crée pas un contexte et ainsi ConvertFrom est pas informé de le type de destination, de sorte qu'il peut faire la conversion.

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

Quelqu'un a-t-il rencontré ce problème? Et si oui, avez-vous un travail à faire?

Répondre

0

Nous l'avons fait à la fin par;

  1. obtenir le TypeConverter pour l'objet
  2. la création d'une classe de contexte proxy la mise en œuvre créant ITypeDescriptorContext
  3. un descripteur de propriété avec le type requis défini

un chèque de contexte null a été ajouter à la CanConvertFrom méthode, pour les cas tels que ci-dessus

Son un peu d'un miss de MS ceci, il me semble que le type de votre conversion devrait être disponible capable. Ce travail ne fonctionne que lorsque le ModelBinder que nous avons implémenté est utilisé.

Eh bien, je m'en suis passé