मैं अपने पुराने कोड के माध्यम से जा रहा था और एक हाइब्रिड IValueConverter
/MarkupExtension
कक्षा में आया था। मुझे आश्चर्य हुआ कि IServiceProvider
ProvideValue
विधि में वास्तव में उपयोगी था, और यह कैसे उपयोगी होगा?MarkupExtension.ProvideValue - क्या IServiceProvider वास्तव में उपयोग किया जाता है?
मुझे लगता है कि IServiceProvider
में केवल एक विधि है: GetService
, जिसे उचित सेवा प्रकार में डाला जाना चाहिए। मैंने MarkupExtension.ProvideValue एमएसडीएन पृष्ठ पर भी देखा और यह विभिन्न प्रकार की सेवाओं की सूची देता है। मुझे लगता है, मैं बस सोच रहा हूं कि इनमें से कोई भी सेवा उपयोगी है या क्या मुझे अपनी विधि छोड़नी चाहिए?
वर्तमान विधि:
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?
}