2011-03-07 10 views
0

複数の接続(つまりセッション)を処理できるAPIを使用して、これらの各セッションは一意のID(sessionID)を持ち、シーケンス番号ですべての受信メッセージと送信メッセージを追跡します。共通キーに個別のデータとグループを格納する

Class1の

public void Method1(SessionID sessionID, Message message) 
{  
    var ID = sessionID; 
    var foo = message.InSeqNo; 
} 

public void Method2(SessionID sessionID, Message message) 
{ 
    var ID = SessionID; 
    var bar = message.OutSeqNo; 
} 

私はあなたがそう各インスタンスは、そのセッションIDに基づいて、独立して表示することができます一緒にこのデータを格納する推薦するか興味があります。

以前の数字は表示されているだけなので、保存する必要はありません。 SessionIDは変更されず、各シーケンス番号は個別に更新されます。

Dictionary<sessionID, number>のような2つの別々のフィールドを使用して、更新時に各フィールドをクリアし、新しい値を再追加し、LINQ経由で2つを結合して情報を表示することが最も良いことです。

+0

あなたが追跡しようとしていることは完全にわかりません。あなたは、各セッションの次の入/出シーケンス番号を追跡したいですか?または、他の何か? –

+0

@Jim Correct、今日あなたの解決策を試してみようとしています(申し訳ありませんが、私は昨日病気でした)が、私が言うことを解読したように聞こえます。今のところ、各セッションは、私が知っている同じin/out seq番号を表示しています。私は新しいクラスを試してみましょう。 –

答えて

1

なぜ特定のIDのインバウンドおよびアウトバウンドのシーケンス番号を含む単一のクラスはありませんか?

class SessionInfo 
{ 
    public int SessionId { get; private set; } 
    public int InSeqNo { get; set; } 
    public int OutSeqNo { get; set; } 
} 

辞書セッション=新しい辞書()。

SessionInfo sess; 
if (Sessions.TryGetValue(sessionId, out sess)) 
{ 
    ++sess.InSeqNo; 
} 

するか、私はあなたの質問に根本的な何かが欠けています:

はその後、セッションのInSeqNo更新するには?

関連する問題