2016-04-22 111 views
1

我正在使用ServiceStack进行服务,并遇到问题。我没有看到请求参数,因此,当我调用该方法时,请求的所有参数都为空。 下面是代码:缺少ServiceStack请求参数

public class AppHost : AppSelfHostBase 
{ 
    public AppHost() 
     : base("CallbackServer", typeof(CallbackServer).Assembly) 
    { 
    } 

    public override void Configure(Container container) 
    { 
    } 
} 

public class CallbackServer : Service 
{ 
    public HttpResult Post(EventoCliente request) 
    { 
     request.TimeReceived = DateTime.Now; 
     Task.Factory.StartNew(() => Program.EventArrived(request)); 
     return new HttpResult(HttpStatusCode.OK,"OK"); 
    } 
} 

[Route("/turno", "Post")] 
public class EventoCliente : IReturn<EventoClienteResponse> 
{ 
    public TurnoCliente Turno; 
    public string Sucursal; 
    public string[] Puestos; 
    public DateTime? TimeReceived; 
} 

public class EventoClienteResponse 
{ 
    public ResponseStatus ResponseStatus { get; set; } 
} 

static void Main() 
{ 
    var appHost = new AppHost(); 
    appHost.Init(); 
    appHost.Start("http://*:9900/NesrEmulator/"); 
} 

所以,在浏览器中我写:http://localhost:9900/NesrEmulator,我可以看到方法EventoCliente,但我不能看到(有地图无法)该请求的参数。 Here is a screenshot of what i mean...

我做错了什么? 感谢

回答

2

你的DTO的应该使用公共属性不是公共领域所以只是将其更改为:

[Route("/turno", "Post")] 
public class EventoCliente : IReturn<EventoClienteResponse> 
{ 
    public TurnoCliente Turno { get; set; } 
    public string Sucursal { get; set; } 
    public string[] Puestos { get; set; } 
    public DateTime? TimeReceived { get; set; } 
}