如何将多个“密钥”绑定到服务堆栈请求DTO上的单个属性

时间:2014-06-09 18:28:19

标签: servicestack

我有一个像这样的DTO:

public class Request {
 public id ASpecificIdentifier { get; set; }
 public string PreciseDescription { get; set; }
 public string FirstPartOfSomeonesName { get; set; }
}

虽然我很高兴接受这个作为官方'输入',我也希望能够将它们绑定到多个键。其原因将序列化为加密JSON对象中的客户端,因此我希望保持长度不变。

例如,他们也应该能够通过:

{
 "Id":1,
 "Desc":"My Issue",
 "Name":"Bob"
}

我怎样才能做到这一点?我查看了提供的属性,但似乎不能允许这种行为?

1 个答案:

答案 0 :(得分:1)

您可以为您允许的每个方案创建多个DTO(命名参数集)。然后在您的服务中,您必须处理每个DTO并将它们翻译成一个共同的DTO以采取行动。

另一种方法是使用 DTO采用通用键/值参数。这将使您的DTO非常灵活,但您将失去强类型的一些优势。

例如:

public class Request { Dictionary<string,string> Properties { get; set; } }