MVC 2 e TypeConverters, ottieni il tipo di destinazione in ConvertFrom dove il contesto è null

StackOverflow https://stackoverflow.com/questions/4023466

Domanda

Ho un TypeConverter sulla classe base nel mio progetto.

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

Ho un numero di classi che ereditano questa base

class TitleCode : CodeBase
class PreferenceCode : CodeBase

Quando l'oggetto che chiama il convertitore di tipi (ValueProvider.ConvertSimpleType) non crea un contesto e quindi ConvertFrom non viene informato del tipo di destinazione, quindi può eseguire la conversione.

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

Qualcuno ha riscontrato questo problema?E, se sì, hai una soluzione?

È stato utile?

Soluzione

Alla fine lo abbiamo fatto;

  1. ottenere il TypeConverter per l'oggetto
  2. creando una classe di contesto proxy che implementa ITypeDescriptorContext
  3. creando un descrittore di proprietà con il tipo richiesto impostato

è stato aggiunto un controllo per il contesto nullo al metodo CanConvertFrom, per i casi come sopra

È un po' una mancanza da parte di MS, mi sembra che il tipo in cui stai convertendo dovrebbe essere disponibile.Questa soluzione funziona solo quando viene utilizzato il ModelBinder che abbiamo implementato.

Ah beh, l'ho superato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top