根据 ServiceStack 的 wiki 示例,如果您有这样的 URI:
www.servicestack.net/ServiceStack.Hello/servicestack/hello?Name=World
您的请求 DTO 如下所示:
[Route("/hello")]
public class Hello
{
public string Name { get; set; }
}
但是,如果 URI 是这样的:
www.servicestack.net/ServiceStack.Hello/servicestack/hello?n=World
您将如何使用上面相同的 DTO 但将 Name 映射到“n”?是否有一个属性可以用来装饰 DTO 属性?
我尝试使用 DataContract 和 DataMember 属性,如下所示:
[DataContract]
[Route("/hello")]
public class Hello
{
[DataMember(Name = "n")]
public string Name { get; set; }
}
但是,这很好用,当您有很多属性时,它会停止工作,除非您使用 [DataMember] 属性装饰每个属性。
无论如何提供与属性不同的参数的自定义名称而不使用 DataContract 和 DataMember?也许是 ServiceStack 提供的自定义属性,所以只有需要以不同方式映射的属性才具有属性,而其余的就不用管了吗?