MarkupExtension.ProvideValue - Действительно ли используется IServiceProvider?

Я просматривал свой старый код и наткнулся на гибридный IValueConverter / MarkupExtension класс. Меня заставило задуматься, действительно ли IServiceProvider в методе ProvideValue полезен, и как бы это было полезно?

Я вижу, что IServiceProvider имеет только один метод: GetService, который должен быть приведен к соответствующему типу сервиса. Я также посмотрел на страницу MarkupExtension.ProvideValue MSDN и в ней перечислены различные типы сервисов. Наверное, мне просто интересно, полезен ли какой-либо из этих сервисов, или мне просто оставить свой метод таким, какой он есть?

Current Method:

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

Basically, should I do the following:

public Object ProvideValue(IServiceProvider serviceProvider)
{
    var provider = serviceProvider as SomeType;

    if (provider == null) return new MyConverter();

    //Do something with the provider here?
}

5
задан m-y 14 September 2011 в 22:01
поделиться