Sto cercando un modo per passare informazioni aggiuntive a TypeConverter
per fornire un contesto per le conversioni senza creare un costruttore personalizzato.Passaggio di un contesto contenente proprietà a un TypeConverter
Le informazioni aggiuntive passate sarebbero oggetto originale (noto al momento della compilazione come interfaccia) che contiene la proprietà che sto convertendo. Contiene proprietà come Id
che sono utili per le ricerche per convertire le informazioni correlate.
Ho dato un'occhiata alla documentazione di ITypeDescriptorContext ma non ho trovato un chiaro esempio di come implementare quell'interfaccia. Non sono nemmeno convinto che sia lo strumento di cui ho bisogno.
Al momento, nel mio codice Chiamo:
// For each writeable property in my output class.
// If property has TypeConverterAttribute
var converted = converter.ConvertFrom(propertyFromOriginalObject)
propertyInfo.SetValue(output, converted, null);
Quello che mi piacerebbe fare è qualcosa di simile.
// Original object is an interface at compile time.
var mayNewValue = converter.ConvertFrom(originalObject, propertyFromOriginalObject)
mi piacerebbe essere in grado di utilizzare uno dei sovraccarichi di fare quello che mi serve in modo che eventuali convertitori personalizzati possono ereditare da TypeConverter
piuttosto che una classe base con un costruttore personalizzato come che avrebbe reso la vita più facile con dipendenza da iniezione e utilizzare DependencyResolver.Current.GetService(type)
da MVC per inizializzare il mio convertitore.
Qualche idea?
Potrebbe fornire qualche spiegazione su cosa intendi per "contesto aggiuntivo"? – krillgar
Nessun problema, ho aggiunto un po 'per descrivere il contesto in più. –
Chi ha downvoted, cura di spiegare? –