我正在浏览我的一些旧代码,并遇到了一个混合IValueConverter
/MarkupExtension
类。这让我想知道IServiceProvider
该ProvideValue
方法是否真的有用,以及它将如何有用?
我看到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?
}