質問

私は私の古いコードを経験していて、ハイブリッドに出会いました IValueConverter / MarkupExtension クラス。それは私に疑問に思いました IServiceProvider の中に ProvideValue 方法は実際に有用であり、どのように役立つでしょうか?

私はそれを見る IServiceProvider 1つの方法しかありません。 GetService, 、適切なサービスタイプにキャストする必要があります。私も見ました MarkUpExtension.ProvideValue MSDNページとITは、さまざまな種類のサービスをリストしています。私は、これらのサービスのいずれかが役立つのか、それとも自分の方法をそのまま残すべきだと思うだけだと思いますか?

現在の方法:

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

基本的に、次のことを行う必要があります。

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

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

    //Do something with the provider here?
}

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top