2

次の 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; }

に変更されました:

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

?

4

1 に答える 1

1

ルートでネストされたプロパティにマップすることはできません。一般的なサービス API の設計では、クライアントがよりアクセスしやすいように、DTO をできるだけフラットに保つことを目指す必要があります。

ただし、ServiceStack では、 JSV 形式(つまり、引用符のない JSON)を使用して QueryString を介して複雑な型を送信できます。

したがって、次のことができます。

Routes.Add<Bar>("/bar");

そして、次の方法でサービスを呼び出すことができます。

/bar?Test={Foo:foo,Bar:bar}

ServiceStack でのルーティングの詳細については、この回答を参照してください。

于 2012-09-17T21:29:27.357 に答える