我的项目包含大量服务,我们将这些服务分组到不同的域中,这样我们就可以使用相应的Urls来调用它们,即
域1
/FlightManagementDomain/SeatMaps
/FlightManagementDomain/Passengers
域名2
/ReservationsDomain/Tickets
/ReservationsDomain/Bookings
我可以让开发团队在每个命名空间上工作。即使两个团队在请求/响应/控制器对象的每个命名空间中创建两个具有相同名称的类,也不会抛出任何错误。
由于我想切换到服务堆栈,我使用具有以下结构的SS写了一个POC
请注意,我对请求对象“GetUsersRequest”使用相同的名称。这编译并运行正常,但是当我单击元数据页面中的json或xml链接时,它会抛出以下错误“Sequence包含多个匹配元素”
服务主机配置如下所示
现在,如果我将其中一个类名从“GetUsersRequest”更改为“GetUsersRequest1”,它将按预期工作,错误就会消失。
我怀疑SS在代码中的某处使用Type.Name而不是Type.FullName。有没有办法在不重命名请求类的情况下避免此错误?
我在这里附上完整的源代码link to source code
答案 0 :(得分:1)
这不起作用,因为Request DTO名称在ServiceStack中必须是唯一的。 C#命名空间是内部实现细节,并没有任何意义。