Estaba revisando un viejo código mío y encontré una clase híbrida IValueConverter
/MarkupExtension
. Me pregunto si el IServiceProvider
en el método ProvideValue
fue realmente útil, y ¿cómo sería útil?MarkupExtension.ProvideValue - ¿Se utiliza realmente IServiceProvider?
Veo que IServiceProvider
solo tiene un método: GetService
, que debe convertirse al tipo de servicio adecuado. También miré en la página de MSDN MarkupExtension.ProvideValue y enumera diferentes tipos de servicios. Supongo que me pregunto si alguno de esos servicios es útil o debería dejar mi método tal como está.
Método actual:
public Object ProvideValue(IServiceProvider serviceProvider)
{
return new MyConverter();
}
Básicamente, debería hacer lo siguiente:
public Object ProvideValue(IServiceProvider serviceProvider)
{
var provider = serviceProvider as SomeType;
if (provider == null) return new MyConverter();
//Do something with the provider here?
}