【发布时间】:2012-05-22 08:15:35
【问题描述】:
我们正在开发一个自托管的 WCF 服务主机,它将根据配置动态加载服务。
我想知道我应该将每个服务视为一个迷你应用程序并在每个托管服务中使用组合根还是在服务主机本身上使用组合根?
非常感谢您的意见!
【问题讨论】:
标签: .net wcf dependency-injection inversion-of-control
我们正在开发一个自托管的 WCF 服务主机,它将根据配置动态加载服务。
我想知道我应该将每个服务视为一个迷你应用程序并在每个托管服务中使用组合根还是在服务主机本身上使用组合根?
非常感谢您的意见!
【问题讨论】:
标签: .net wcf dependency-injection inversion-of-control
每个服务都有一个组合根很好,但是如果可以的话,让你的 WCF 服务只包含 1 个服务和 2 种方法:一种允许您执行查询对象的方法,一种允许您执行命令的方法。这样,您的 WCF 服务仍将拥有一个组合根。
为此,您需要将所有突变建模为commands/handlers,并将读取操作建模为query/handlers。完成此操作后,您将无需再对 SVC 进行任何更改。
看看Silverlight Cookbook,它成功地使用了这种方法。看一下Main\Cookbook\Services.Host\CommandService.svc.cs,这是WCF服务的入口。
这可能会彻底颠覆您的世界,但这种架构非常灵活、可扩展,并且可以显着降低维护成本。
【讨论】: