1

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

考虑以下代码:

[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; }
}

我希望 Response DTO Pong 属性具有默认值“(什么都不回来!)”,而不仅仅是空值。

4

1 回答 1

6

只需在构造函数中设置它。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"
于 2013-10-14T04:43:17.400 回答