servicestack,Routing,servicestack" /> servicestack,Routing,servicestack" />

Routing 忽略路由属性

Routing 忽略路由属性,routing,servicestack,Routing,servicestack,根据文档,路由可以定义为DTO上的属性。我有以下DTO(最后一个在不同的文件中): 由以下服务提供(最后一个位于不同的文件中): 打电话给他们中的任何一个 /hdos /hdos/a82b955195e34bfda2fdde7da68f8992 /hdos/a82b955195e34bfda2fdde7da68f8992/facilities 返回不支持的方法。但是如果我把它们叫做类名,路由就会被击中。我有什么遗漏吗?我是否需要以某种方式在AppHost中激活这些路由?看起来ServiceSt

根据文档,路由可以定义为DTO上的属性。我有以下DTO(最后一个在不同的文件中):

由以下服务提供(最后一个位于不同的文件中):

打电话给他们中的任何一个

/hdos
/hdos/a82b955195e34bfda2fdde7da68f8992
/hdos/a82b955195e34bfda2fdde7da68f8992/facilities

返回不支持的
方法
。但是如果我把它们叫做类名,路由就会被击中。我有什么遗漏吗?我是否需要以某种方式在
AppHost
中激活这些路由?

看起来ServiceStack为REST和HTTP类型映射了不同的路由。我在问题中没有提到我正在调用
Json/syncreply/hdos
,因为我认为
Json/syncreply
是每个调用的一部分。我错了。如果这样做,它将查找DTO类名作为路由


要使用DTO上声明的路由作为属性,只需调用路由,不使用
json/syncreply
。文档中没有直接说明相反的情况,但我还是感到困惑。

在AppHostBase构造函数中,您是否指定用于查找服务的程序集?也不确定通过类名调用它们是什么意思?我确实添加了服务程序集,是的。我需要添加DTO程序集吗?我的意思是,如果我调用url
/gethdos
/getHdo
,第一个或第二个服务(分别)被命中。这是默认路由约定,即DTO类名。右。
public object Get(GetHdos request)
{
    return _hdos.GetAll(request.IncludeAdminUsers);
}

public object Get(GetHdo request)
{
    return _hdos.GetById(request.Id)
}

public object Get(GetHdoFacilities request)
{
    return _hdos.GetFacilities(request.HdoId);
}
/hdos
/hdos/a82b955195e34bfda2fdde7da68f8992
/hdos/a82b955195e34bfda2fdde7da68f8992/facilities