2011-09-19 12 views
2

私はList<SomeObject>を作成するメソッドを持っています。コレクションはJSONがJavaScriptSerializerでシリアル化されています。私はLINQのskip/takeを使用して、コレクション全体のサブセットを返します。だから、総計のサイズをオブジェクトとしてクライアントに返す必要があります(これはサブセットしかないためクライアント側では計算できません)。JSONオブジェクトにリストの数を追加する

私はそれをハックすることができます。ちょうど、SomeObjectのメンバーとしてint TotalSizeを追加してください。

私はこのメンバーをN回繰り返すつもりはありません。私はまた、本当にクラスに属していないメンバーを追加することによっていくつかのひどいOOを実行したくありません。

この新しいメンバーをJSONオブジェクトに追加するために何かできることはありますか?

答えて

2

なぜ複雑なオブジェクトを作成しませんか?

public class SomeObjectSet 
{ 
    public int TotalSetCount { get; set; } 
    public List<SomeObject> Items { get; set; } 

    public SomeObjectSet(List<SomeObject> subset, int totalCount) 
    { 
      items = subset; 
      TotalSetCount = totalCount; 
    } 
} 

その後、単にあなたの新しいオブジェクトを作成し、コンストラクタでデータを割り当て、そしてあなたのJSONはそうのようになります。

{ 
    TotalSetCount: 100, 
    Items: [ 
     { ... }, 
     { ... }, 
     { ... } 
    ] 
} 

とコードにあなたはこの行うだろう:

var subset = mySuperset.Skip(...).Take(...); 
var totalSetCount = mySuperSet.Count(); 

var serialization = _javascriptSerializer.Serialize(new SomeObjectSet(subset, totalSetCount)); 
+0

オペラは正しく読むと、 'SomeObject'に新しいプロパティ' int TotalSize'を追加することを提案していました。それはばかげているようだ。 = D – Tejs

関連する問題