1

当尝试执行 POST 请求时Delete(SourceInfo sourceInfo)执行而不是Post(SourceInfo sourceInfo),如果我删除Delete(SourceInfo sourceInfo)thenPut(SourceInfo sourceInfo)则在执行 POST 请求时执行。我很确定我做错了什么,但我无法弄清楚它是什么。

IPlugin使用接口请求路由。

public void Register(IAppHost appHost)
{
    appHost.Routes.Add<SourceInfo>("/sources", "GET,POST,PUT");
    appHost.Routes.Add<SourceInfo>("/sources/{Name}", "GET,DELETE");
}

服务看起来像这样

public class SourceService : ServiceStack.ServiceInterface.Service
{    
    public SourceInfoResponse Get(SourceInfo sourceInfo)
    { ... }

    public bool Post(SourceInfo source)
    { ... }

    public bool Put(SourceInfo source)
    { ... }

    public bool Delete(SourceInfo source)
    { ... }
}

我在这里查看了新 api 设计的路由描述:https ://github.com/ServiceStack/ServiceStack/wiki/New-API ,但在这种情况下看起来并不适用。

4

1 回答 1

1

于是想通了,结果发现返回bool是行不通的。当我将返回类型更改为object它时,它立即起作用。

像这样

public class SourceService : ServiceStack.ServiceInterface.Service
{    
    public SourceInfoResponse Get(SourceInfo sourceInfo)
    { ... }

    public object Post(SourceInfo source)
    { ... }

    public object Put(SourceInfo source)
    { ... }

    public object Delete(SourceInfo source)
    { ... }
}

它还可以返回自定义类。

于 2013-04-17T19:48:46.860 回答