ServiceStack - 在不同的命名空间中具有相同名称的请求类引发错误

时间:2013-09-15 08:56:40

标签: asp.net web-services domain-driven-design servicestack servicestack-text

我的项目包含大量服务,我们将这些服务分组到不同的域中,这样我们就可以使用相应的Urls来调用它们,即

域1

/FlightManagementDomain/SeatMaps
/FlightManagementDomain/Passengers

域名2

/ReservationsDomain/Tickets
/ReservationsDomain/Bookings

我可以让开发团队在每个命名空间上工作。即使两个团队在请求/响应/控制器对象的每个命名空间中创建两个具有相同名称的类,也不会抛出任何错误。

由于我想切换到服务堆栈,我使用具有以下结构的SS写了一个POC

Solution Structure

请注意,我对请求对象“GetUsersRequest”使用相同的名称。这编译并运行正常,但是当我单击元数据页面中的json或xml链接时,它会抛出以下错误“Sequence包含多个匹配元素”

Error

服务主机配置如下所示

Configuration

现在,如果我将其中一个类名从“GetUsersRequest”更改为“GetUsersRequest1”,它将按预期工作,错误就会消失。

我怀疑SS在代码中的某处使用Type.Name而不是Type.FullName。有没有办法在不重命名请求类的情况下避免此错误?

我在这里附上完整的源代码link to source code

1 个答案:

答案 0 :(得分:1)

这不起作用,因为Request DTO名称在ServiceStack中必须是唯一的。 C#命名空间是内部实现细节,并没有任何意义。