4

我在 PRISM 架构中有一个 WPF 应用程序。

从我在网上阅读的内容中,我看到 View-Models 以ASYNC方式调用 WCF 服务操作是最好的,而且 - 最好为每个操作创建一个新连接。(有人告诉我,保持连接活动时间过长是不好的)。

我的问题是 - 我应该如何将 WCF 客户端注入到我的 View-Model 中?

如果我只是为“自动生成”客户端创建一个接口 - 并注入接口 - 这将只是在我的 View-Model 构造函数中为客户端创建一个实例,但如果我想创建一个新客户端,这对我没有帮助对于我在窗口中执行的每个操作。

为此-我需要注入“客户端工厂”之类的东西。

任何人都可以对此发表意见吗?

4

1 回答 1

0

首先,IMVHO WCF 调用最好放在模型中,而不是视图模型中。

您可以创建一个工厂助手类,向它传递一个接口,然后它会传回一个实现该接口的具体实例。工厂助手仍然可以使用 PRISM 将接口解析为具体类型,这些类型将解析您已将它们注册到的任何内容,并且您每次都将获得一个新实例,前提是您尚未向生命周期管理器注册它们。

在工厂助手中使用 PRISM 有助于保持整个事物的高度可单元测试——您可以在测试时模拟出与 WCF 相关的代理类,而目标模型永远不会知道其中的区别。如果你真的想遵循依赖注入模式,那么你可以在构造函数中注入工厂助手。

于 2012-07-22T09:33:55.720 回答