我使用服务堆栈创建了一个简单的服务。
namespace BE.Source.Listener.Services
{
public class StatusService : Service
{
private ILog Logger
{
get
{
return LogManager.GetLogger(GetType()); ;
}
}
public object Get(KilnListenerStatusRequest request)
{
var result = new KilnListenerStatusResponse();
result.LastPushRequest = DateTime.Now;
return result;
}
}
}
该服务返回一个名为“StatusResult”的 dto,它具有 ResponseSTATus 属性。
请求和结果 dtos 位于同一 namespace 中,但不在服务所在的 namespace 中,
或者StatusREsult仅在发生错误时才填充?
namespace BE.Source.ServiceModel
{
/// <summary>
/// Request for Service Status
/// </summary>
public sealed class StatusRequest : IReturn<StatusResult>
{
}
}
namespace BE.Source.ServiceModel
{
/// <summary>
///
/// </summary>
public sealed class StatusResult
{
/// <summary>
/// Status of the response
/// </summary>
public ResponseStatus ResponseStatus { get; set; } //Automatic exception handling
}
但是当使用 jsonservice cleint 触发 get 时,该属性为 null。
最佳答案
据我所知,当没有发生错误时,ResponseStatus 属性将为 null。
来自one of the many tests in the ServiceStack GitHub repo :
[Test, TestCaseSource(typeof(CustomerServiceValidationTests), "ServiceClients")]
public void Post_ValidRequest_succeeds(Func<IServiceClient> factory)
{
var client = factory();
var response = client.Send<CustomersResponse>(validRequest);
Assert.That(response.ResponseStatus, Is.Null);
}
关于ServiceStack StatusResult未填写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18211115/