ServiceStack/TypeScript: typescript-ref 忽略命名空间(这导致重复)

ServiceStack/TypeScript: The typescript-ref ignores namespaces (this causing duplicates)

我正在学习以 C# 中的 ServiceStack 作为后端的 NativeScript + Angular2。

对于应用程序,我使用 typescript-ref 命令生成了 TypeScript 类,以便与 ServiceStack 中的 JsonServiceClient 一起使用:

>typescript-ref http://192.168.0.147:8080 RestApi

一切看起来都很甜蜜和花花公子,直到我发现它似乎忽略了 ServiceStack 服务和响应 DTO 在 .NET 端的不同命名空间中:

我有不同的服务分支,每个服务的处理程序在分支之间可能略有不同。这在 ServiceStack 中运行良好,登录和处理程序按预期工作。

因此,在 app/NativeScript/Angular2-side 上,我使用了 typescript-ref 并生成了 restapi.dtos.ts。问题是它跳过了名称空间差异,只是创建了重复的 类 (来自 VSCode):

ServiceStack 中的后端 WS 以这种 "branched" 方式构建,因此我不必在不同的端口上启动不同的服务,而是将所有服务集中在一个端口上并保持简单明了。

我的问题可以解决吗?

您不应该在 public 面向服务合同中依赖 .NET 命名空间。它在 .NET 客户端中受支持,但在 requires that each DTO be uniquely named.

的任何其他语言中不受支持

一般来说,您的 DTO 在整个 SOA 边界内应该是唯一的,这样只有 1 个 Test DTO 映射到单个模式定义,确保当它通过服务网关发送时,通过服务发现解决,发布到 MQ 服务器等它只映射到单个 DTO 合同。