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