调用服务 RegisterService 删除响应的 "Success" 属性
Calling service RegisterService removes "Success" property of response
我将 Register 服务包装在我自己的服务中,如下面的代码片段所示:
var auth = request.ConvertTo<Register>();
var regService = base.ResolveService<RegisterService>();
RegisterResponse response = null;
try
{
response = (RegisterResponse)regService.Post(auth);
}
catch (Exception ex)
{
Log.Error($"Unable to register user {request.Email}", ex);
return new RegisterUserResponse
{
Success = false,
PublicMessage = "Unable to register user",
DebugMessage = ex.Message
};
}
当出现错误时,RegisterService
修改响应并添加一个空的 ResponseStatus
对象并删除 Success
属性.
我不介意添加额外的对象,但无论如何要阻止它删除 Success
属性?
默认情况下,ServiceStack 会序列化 bool 属性,但您所描述的行为是如果您专门将其配置为不通过设置:
JsConfig.Init(new Config {
// ExcludeDefaultValues = true,
});
在这种情况下,所有默认值,例如 bool
属性的 false
都不会在线上发出。如果您想保留此配置并希望 false
被序列化,您必须更改它,使其不是默认值,使其可以为空,例如:
public class RegisterUserResponse
{
public bool? Success { get; set; }
}
我将 Register 服务包装在我自己的服务中,如下面的代码片段所示:
var auth = request.ConvertTo<Register>();
var regService = base.ResolveService<RegisterService>();
RegisterResponse response = null;
try
{
response = (RegisterResponse)regService.Post(auth);
}
catch (Exception ex)
{
Log.Error($"Unable to register user {request.Email}", ex);
return new RegisterUserResponse
{
Success = false,
PublicMessage = "Unable to register user",
DebugMessage = ex.Message
};
}
当出现错误时,RegisterService
修改响应并添加一个空的 ResponseStatus
对象并删除 Success
属性.
我不介意添加额外的对象,但无论如何要阻止它删除 Success
属性?
默认情况下,ServiceStack 会序列化 bool 属性,但您所描述的行为是如果您专门将其配置为不通过设置:
JsConfig.Init(new Config {
// ExcludeDefaultValues = true,
});
在这种情况下,所有默认值,例如 bool
属性的 false
都不会在线上发出。如果您想保留此配置并希望 false
被序列化,您必须更改它,使其不是默认值,使其可以为空,例如:
public class RegisterUserResponse
{
public bool? Success { get; set; }
}