我是一个ServiceStack的新手,为了学习其工作原理,我将开发一个使用存储库模式的北风数据库Web API。
我查看了示例项目ServiceStack.Northwind,但只有两个服务(客户和订单)。我想开发一个完整的API(客户、订单、产品等),就像Matt Cowan所做的。
基本上,所有服务都会执行相同的操作:
- 接收请求。
- 执行(Repository.Get,Repository.Add,Repository.Update,Repository.Delete)。
- 发送响应。
为此,我考虑创建一个基类来完成几乎所有工作。首先,我尝试了以下内容:
public class BaseService<TRepository, TEntity, TDto> : Service
{
...
}
这个类的问题在于我不知道每个操作的请求和响应类型。因此,我想将它们作为类型参数传递:
public class BaseService<TRepository, TEntity, TDto, TRequest, TSingleResponse, TCollectionResponse> : Service
{
...
}
我不喜欢这个。我相信不需要向类传递n类型的参数也可以完成。
我应该如何开发这个基础类呢?
非常感谢您提前的帮助。
public IRepository<TEntity> Repository { get; set; }
,然后让 IoC 容器解析依赖项。好的方法,非常感谢。 - Merrin