【发布时间】:2011-11-17 10:05:14
【问题描述】:
我正在浏览我的一些旧代码,遇到了一个混合的 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?
}
【问题讨论】:
标签: c# wpf ivalueconverter markup-extensions service-provider