我使用ServiceStack Visual Studio加载项(" ServiceStack ASP.NET Empty")模板创建了一项新服务。
这将创建4个项目,ServiceModel,ServiceInterface,ServiceHost和测试项目。如果我通过接口使用REPOSITORY模式封装我的数据访问(想想依赖注入),并且不允许将任何其他项目添加到解决方案中,那么什么项目应包含此代码,为什么?如果repo代码绝对必须移出到另一个项目,那么项目依赖项是ServiceModel,ServiceInterface?
谢谢你, 斯蒂芬
答案 0 :(得分:1)
ServiceHost和测试项目。如果我通过接口
用REPOSITORY模式封装我的数据访问
有关物理项目布局的更多信息,请参阅Physical project structure wiki。
ServiceStackVS's VS.NET templates遵循上述物理项目结构,其中仅ServiceInterface
用于维护您的服务实现和自定义逻辑。所有其他起始项目具有不同的目的,例如
Host
项目是所有具体依赖项都已注册并连接在一起的粘合剂,否则应该保持轻量级和无逻辑。 ServiceModel
项目是一个dep / impl-free项目,用于维护您的服务合同DTO,这些DTO应该不受Server实施的影响,因此可以在客户项目中重复使用。接口和实现都可以在同一个项目中。此布局后的一些ServiceStack演示版是IRepository中的RedisStackOverflow类以及IEmailer中的EmailContacts类。