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によって提供されるカスタム属性なので、異なる方法でマッピングする必要があるものだけが属性を持ち、残りはそのままになりますか?