代码之家  ›  专栏  ›  技术社区  ›  Dave

使用接口与MVVM light Messenger处理数据请求

  •  0
  • Dave  · 技术社区  · 14 年前

    我有一个插件,需要访问某些信息,以便正确填充其GUI元素。但是,这个插件不应该知道所有其他插件,所以我希望它从应用程序请求这些信息。

    总是 创建一个用于数据交换的接口,然后将此接口传递给插件,以便它们可以在需要时请求数据。但是,我最近开始使用 MVVM light toolkit 因为它有一些很棒的功能,比如 RelayCommand Messenger . 在这种情况下,我完全可以看到使用Messenger——插件不需要接口,因为它们可以简单地使用 Messenger.Default.Send<MyDataRequestMessage>(...) . 只要他们注册接收处理程序,一切都好。。。还是真的?

    你喜欢哪种方法?为什么?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Alex Paven    14 年前

    对于插件来说,像mvvmlight的messenger这样的聚合器是很好的;或者,您可以看看 MEF (现在是.NET4的一部分),它还支持自动发现和其他类似的功能,您可以使用与之相关的接口。所以答案就要看情况了:)就我个人而言,我更喜欢Messenger的简单性,除非它适用于非常大的enterprise-y项目。

        2
  •  1
  •   Matt Casto    14 年前

    正如亚历克斯所说, MEF

    没有理由不能同时使用MEF和MVVM Light。你使用mvvmlight的messenger从插件到应用程序进行通信的想法很有趣,我希望它对你有用。但是,请记住,任何插件都可以注册以接收这些相同的消息,并且最终可能会有一个插件接收另一个插件的消息。这对您来说可能不是一个问题,但是如果您不控制谁编写这些扩展,您肯定会有一个安全漏洞。

    祝你好运!