Stavo esaminando un mio vecchio codice e ho trovato una classe ibrida IValueConverter
/MarkupExtension
. Mi sono chiesto se il IServiceProvider
nel metodo ProvideValue
fosse effettivamente utile e come sarebbe utile?MarkupExtension.ProvideValue - L'IServiceProvider è effettivamente utilizzato?
Vedo che IServiceProvider
ha un solo metodo: GetService
, che deve essere inoltrato al tipo di servizio appropriato. Ho anche guardato la pagina MSDN MarkupExtension.ProvideValue e elenca diversi tipi di servizi. Immagino, mi stavo chiedendo se qualcuno di questi servizi è utile o devo lasciare il mio metodo così com'è?
Metodo attuale:
public Object ProvideValue(IServiceProvider serviceProvider)
{
return new MyConverter();
}
In sostanza, si deve fare quanto segue:
public Object ProvideValue(IServiceProvider serviceProvider)
{
var provider = serviceProvider as SomeType;
if (provider == null) return new MyConverter();
//Do something with the provider here?
}