2011-03-07 19 views
0

使用可處理多個連接(即會話)的API,每個會話都具有uniqueID(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>。清除每個字段的更新,重新添加新值,然後通過LINQ連接兩個並顯示信息。

+0

我不完全清楚你想要跟蹤的內容。您想要跟蹤每個會話的下一個輸入/輸出序號嗎?或者是其他東西? –

+0

@Jim正確,我今天要試試你的解決方案(對不起,我昨天生病了),但這聽起來像破譯了我想說的。現在每個會話都顯示相同的輸入/輸出序號,我知道這是不正確的。我要去嘗試新課程並讓你知道。 –

回答

1

爲什麼不是一個包含特定ID的入站和出站序列號的類?

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

Dictionary Sessions = new Dictionary();

要更新一個會話的InSeqNo,則:

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

還是我失去了你的問題中一些基本的東西?