我在模块化的Silverlight应用程序中偶然发现了这种特殊情况。
我需要从其中一个应用程序屏幕填充上下文菜单,问题是多个模块可能想在这里添加菜单条目。
我们提出的解决方案是:
您认为最好的方法是什么?为什么?
谢谢,
答案 0 :(得分:2)
我认为第二种方法更接近应该采取的方式。您不希望应用程序shell告诉模块存在上下文菜单。如果您想重新构想UI并使用不同的控件,该怎么办?您必须更改消息类型以及订阅该消息的所有模块。
相反,例如,使用MEF,您可以拥有一个IContextOptions
接口或类似的东西,它有一个方法来检索上下文选项的集合。在MEF发现实现此接口的每个模块之后,您可以依次调用每个模块上的方法来填充上下文菜单。