我正在使用 ServiceStack 开发一个(希望如此)RESTful API。
我注意到我的大多数服务看起来都一样,例如,GET 方法看起来像这样:
try
{
Validate();
GetData();
return Response();
}
catch (Exception)
{
//TODO: Log the exception
throw; //rethrow
}
假设我有 20 个资源,20 个请求 DTO,所以我或多或少地获得了大约 20 个相同模板的服务......
我试图创建一个通用或抽象的服务,以便我可以创建只实现相关行为的继承服务,但我被卡住了,因为请求 DTO 不是序列化所需的。
有什么办法吗?
编辑:
我正在尝试做的一个例子:
public abstract class MyService<TResponse,TRequest> : Service
{
protected abstract TResponse InnerGet();
protected abstract void InnerDelete();
public TResponse Get(TRequest request)
{
//General Code Here.
TResponse response = InnerGet();
//General Code Here.
return response;
}
public void Delete(TRequest request)
{
//General Code Here.
InnerDelete();
//General Code Here.
}
}
public class AccountService : MyService<Accounts, Account>
{
protected override Accounts InnerGet()
{
throw new NotImplementedException();//Get the data from BL
}
protected override void InnerDelete()
{
throw new NotImplementedException();
}
}