Tôi đã đi qua một số mã cũ của tôi và đi qua một lớp lai IValueConverter
/MarkupExtension
. Nó khiến tôi tự hỏi liệu IServiceProvider
trong phương pháp ProvideValue
có thực sự hữu ích hay không, và nó sẽ hữu ích như thế nào?MarkupExtension.ProvideValue - IserviceProvider có thực sự được sử dụng không?
Tôi thấy rằng IServiceProvider
chỉ có một phương thức: GetService
, phải được truyền sang loại dịch vụ thích hợp. Tôi cũng đã xem trang MarkupExtension.ProvideValue MSDN và nó liệt kê các loại dịch vụ khác nhau. Tôi đoán, tôi chỉ tự hỏi liệu có bất kỳ dịch vụ nào hữu ích hay tôi nên rời khỏi phương pháp của mình như vậy?
Phương pháp hiện tại:
public Object ProvideValue(IServiceProvider serviceProvider)
{
return new MyConverter();
}
Về cơ bản, tôi nên làm như sau:
public Object ProvideValue(IServiceProvider serviceProvider)
{
var provider = serviceProvider as SomeType;
if (provider == null) return new MyConverter();
//Do something with the provider here?
}