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



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

(在这种情况下,它将加载额外的组件来支持master/detail)

这是MEF可以用来做的吗?

欢呼

您可以使用mef,但根据您的场景,它可能有点笨拙

从你的描述中,听起来像是自定义控件实例是决定加载哪些附加组件的人。

Mef通常在目标thing 确切知道它想要什么时使用,只有它想要的是实现一些接口(或者更确切地说,是契约)。

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

您可以为您控制的不同"区域"定义契约,并让它们由mef填充,但是已经有了这样的框架,例如Prism,您应该看看,至少作为参考。

我建议查看MSDN文档中的MEF,看看它们是否适用于您的场景

最新更新