RouteAttribute,AttributeUsage,Inherited = true

时间:2013-01-31 12:50:38

标签: servicestack

我目前在DTO之间有继承,只要我为每个具体(叶子节点)DTO a [Route]定义,而不是在其中一个超类上,它就能很好地工作。到目前为止,超类都是抽象的。现在我的情况是我有一个具体的DTO并且定义了[Route]属性也是另一个DTO的超类,它有自己的路径。

两个DTO都有自己的服务,但它没有按预期工作。两个DTO都被“路由”到叶节点。

superclass DTOA
subclass DTOB where DTOB : DTOA

当我在DTOA上进行GET时,它是DTOB响应的服务。除了对我的继承进行不同的建模之外,我如何确定路由的工作方式与我希望的一样?

因此:

DTOA routed to serviceA
DTOB routed to serviceB

这是否因为RouteAttributes被继承而发生?在RouteAttribute上使用Inherited = true的原因是什么?

1 个答案:

答案 0 :(得分:0)

请勿在请求DTO中使用继承。 Inheritance on DTOs are bad idea首先要考虑的是,在申请DTO中应该特别避免这些内容,这些内容应该针对每项服务进行定制。

Route属性可以应用于服务和/或请求DTO,并支持New API和允许继承的旧API。