MarkupExtension.ProvideValue: ¿se utiliza realmente el IServiceProvider?

Estaba revisando un código antiguo y encontré un híbridoIValueConverter / MarkupExtension clase. Me hizo preguntarme si elIServiceProvider en elProvideValue método fue realmente útil, y ¿cómo sería útil?

Veo queIServiceProvider solo tiene un método:GetService, que debe convertirse al tipo de servicio adecuado. También miré el MarkupExtension.ProvideValue MSDN y enumera diferentes tipos de servicios. Supongo que me pregunto si alguno de esos servicios es útil o debería dejar mi método como está.

Método actual:

public Object ProvideValue(IServiceProvider serviceProvider)
{
    return new MyConverter();
}

ásicamente, debo 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?
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta