我在PRISM架构中有一个WPF应用程序。
根据我在网上看到的内容,我看到最好是View-Models以 ASYNC 的方式调用WCF服务操作,并且最好创建一个每个操作的新连接。 (我被告知保持连接存活时间不长是好事。)
我的问题是 - 如何将WCF客户端注入我的View-Model?
如果我只是为'自动生成'客户端创建一个接口 - 并注入接口 - 这将只是在我的View-Model构造函数中为客户端创建一个实例,但如果我想创建它,那将无济于事我在窗口中执行的每个操作的新客户端。
为此 - 我需要注入像'客户工厂'这样的东西。
有人可以提出他的意见吗?
答案 0 :(得分:0)
首先,IMVHO WCF调用最好进入Model,而不是ViewModel。
您可以创建工厂助手类,将其传递给接口,然后传回实现该接口的具体实例。工厂助手仍然可以使用PRISM将接口解析为具体类型,类型将解析您已注册的任何内容,并且每次提供一个新实例,前提是您没有向终身经理注册它们。
在工厂帮助程序中使用PRISM有助于保持整个事物的高度单元可测试性 - 您可以在测试时模拟出与WCF相关的代理类,并且目标模型永远不会知道差异。如果你真的想要遵循dependency injection模式,那么你可以在构造函数上注入工厂助手。