服务堆栈响应默认值

本文关键字:默认值 响应 堆栈 服务 | 更新日期: 2023-09-27 18:35:24

[Default]数据注释适用于ORMLite。但是,它不适用于响应的默认值。是否有类似于响应 DTO 的 [Default] 属性的内容?

考虑以下代码:

[Route("api/hello")]
public class Hello {
    public string Ping { get; set; }
}
public class HelloResponse {
    public ResponseStatus ResponseStatus { get; set; }
    [Default(typeof(string), "(nothing comes back!)")]
    public string Pong { get; set; }
}

我希望响应 DTO Pong 属性具有默认值"(什么都没有返回!

服务堆栈响应默认值

只需在构造函数中设置它。ServiceStack 中的 DTO 是纯 C# 对象。没什么特别的。

public class HelloResponse 
{
    public HelloResponse() 
    {
        this.Pong = "(nothing comes back!)";
    }
    public ResponseStatus ResponseStatus { get; set; }
    public string Pong { get; set; }
}

类的构造函数将始终在对象初始值设定项中设置的任何属性之前运行:

var resp = new HelloResponse();
Console.WriteLine(resp.Pong); // "(nothing comes back!)"
resp = new HelloResponse 
{
    Pong = "Foobar";
};
Console.WriteLine(resp.Pong); // "Foobar"