1

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

域 1

/FlightManagementDomain/SeatMaps
/FlightManagementDomain/Passengers

域 2

/ReservationsDomain/Tickets
/ReservationsDomain/Bookings

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

因为我想切换到服务堆栈,所以我使用 SS 编写了一个 POC,其结构如下

解决方案结构

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

错误

服务主机配置如下所示

配置

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

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

我在这里附上了完整的源代码链接到源代码

4

1 回答 1

1

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

于 2013-11-25T16:20:50.027 回答