Tag: 服务提供者

MarkupExtension.ProvideValue – 是否实际使用了IServiceProvider?

我正在阅读我的一些旧代码,并遇到了一个混合的IValueConverter / MarkupExtension类。 它让我想知道ProvideValue方法中的IServiceProvider是否真的有用,以及它如何有用? 我看到IServiceProvider只有一个方法: GetService ,必须转换为正确的服务类型。 我还查看了MarkupExtension.ProvideValue MSDN页面,它列出了不同类型的服务。 我想,我只是想知道这些服务是否有用,或者我应该保留我的方法呢? 现行方法: 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? }