如何向Silverlight自定义控件添加MEF支持

如何向Silverlight自定义控件添加MEF支持,silverlight,custom-controls,mef,Silverlight,Custom Controls,Mef,我想使我的自定义控件可扩展(即主/详细、搜索等)。自定义控件的每个实例都将通过属性请求其功能 (在这种情况下,它将加载其他组件以支持主/细节) 这是MEF可以用来做的吗 干杯您可以使用mef,但它可能有点笨重,这取决于您的场景 从您的描述来看,自定义控件实例似乎是决定要加载哪些其他组件的人 Mef通常用于目标对象不确切知道它想要什么,只知道它想要的是实现某个接口(或者更确切地说是契约) 例如,您的自定义控件可能知道它想要执行搜索,但实际上不知道如何执行。然后,您将有一个用于搜索的接口,可能使用

我想使我的自定义控件可扩展(即主/详细、搜索等)。自定义控件的每个实例都将通过属性请求其功能

(在这种情况下,它将加载其他组件以支持主/细节)

这是MEF可以用来做的吗


干杯

您可以使用mef,但它可能有点笨重,这取决于您的场景

从您的描述来看,自定义控件实例似乎是决定要加载哪些其他组件的人

Mef通常用于目标
对象
不确切知道它想要什么,只知道它想要的是实现某个接口(或者更确切地说是契约)

例如,您的自定义控件可能知道它想要执行搜索,但实际上不知道如何执行。然后,您将有一个用于搜索的接口,可能使用单个搜索(字符串)方法。控件将具有该类型的属性,mef将使用mef在其他程序集中找到的实例填充该属性

您可以为您控制的不同“区域”定义合同,并让mef填写这些合同,但是已经有了相应的框架,例如您应该查看的框架,至少可以作为参考

我建议查看一下,看看它们是否适用于您的场景

很高兴提供帮助:)很多Prism文档都会提到,另一个依赖项注入框架(如MEF)在一般原则上非常相似,所以很多关于unity的说法也可以应用于MEF。还有一些文档是关于使用MEF而不是Unity with Prism的。