有没有办法从自定义TypeDescriptionProvider访问ITypeDescriptorContext或IServiceProvider对象?

时间:2017-09-20 11:32:54

标签: c# system.componentmodel

这似乎是TypeDescriptor动态元数据架构中的一个奇怪的差距。所有TypeConverterUITypeEditor和其他动态设计器,编辑器和转换器类都提供对IServiceProvider对象的访问,允许将设计上下文传递给实现类。

由于某种原因,TypeDescriptionProviderCustomTypeDescriptor和相关接口完全没有这个。有没有办法在动态扩展类的元数据/属性的同时访问编辑器设计上下文?

1 个答案:

答案 0 :(得分:0)

在仔细考虑之后,我得出结论,这可以通过创建由设计者自己提供的动态TypeDescriptionProvider实现来解决。此实现可以直接通过某些特定于域的属性接收上下文。

然后可以使用TypeDescriptor.AddProvider方法关联动态类型描述提供者,传入自定义提供者和目标类型。