私は ServiceStack の新しい API を使用するのが好きで、レガシー プロジェクトにいくつかの Poco があり、変更しないでおきたいと思っています。ただし、私の ServiceStack プロジェクトでそれらを Dto に複製するのは少し不必要だと感じています。怠け者になって、どうにかしてプロパティをレガシー pocos に「パススルー」できますか?
これは JsonServiceClient でうまく機能しますが、json に余分なレベルが追加されます。これは私は好きではありません。
[Route("/legacytype", "POST,OPTIONS")]
public class RequestLegacyTypePost : IReturn<int>
{
public LegacyTypeLegacyType{ get; set; }
}
public class LegacyTypeService : Service
{
public object Post(RequestLegacyTypePost request)
{
return db.Insert(request.LegacyType);
}
}
プロパティを DTO にコピー アンド ペーストする方法は、自然に正常に機能します。
[Route("/legacytype", "POST,OPTIONS")]
public class RequestLegacyTypePost : IReturn<int>
{
public int Id { get; set; }
public string SomeProp { get; set; }
public string OtherProp { get; set; }
}
そして、おそらくその単純さがベストプラクティスでしょうか?