servicestack,C#,servicestack" /> servicestack,C#,servicestack" />

C# 将自定义管线映射到嵌套对象特性

C# 将自定义管线映射到嵌套对象特性,c#,servicestack,C#,servicestack,鉴于以下DTO: [DataContract] public class Foo { [DataMember] public string Boo { get; set; } [DataMember] public string Far { get; set; } } [DataContract] public class Bar { [DataMember] public Foo Test { get; set; } // other

鉴于以下DTO:

[DataContract]
public class Foo
{
    [DataMember]
    public string Boo { get; set; }
    [DataMember]
    public string Far { get; set; }
}

[DataContract]
public class Bar
{
    [DataMember]
    public Foo Test { get; set; }

    // other members
}
我想添加一条路线,如:

Add<Bar>("/...(other members).../{Test.Boo}/{Test.Far}/
更改为:

[DataMember]
public Foo[] Test { get; set; }

无法映射到管线中的嵌套属性。对于一般服务API设计,您应该尽可能地保持DTO的平面,因为它更容易被客户访问

尽管ServiceStack允许您使用(即不带引号的JSON)通过QueryString发送复杂类型

所以你可以做:

Routes.Add<Bar>("/bar");
有关详细信息,请参阅此答案

Routes.Add<Bar>("/bar");
/bar?Test={Foo:foo,Bar:bar}