1

だから、私は非常に単純な WCF クライアント サーバー アプリを持っています。問題は、サービスがクライアントからメッセージを取得し、保留中のメッセージ要求も受信することです。ただし、クライアントにメッセージを返しません。代わりに、次の部分が表示されます: ID は問題ありませんが、保留中のメッセージにキー {id} が含まれていません

private Dictionary<int, List<Message>> pendingMessages =
    new Dictionary<int, List<Message>>();

public IEnumerable<Message> GetMessages(int id)
{
    Console.WriteLine($"New request from {id}");
    List<Message> messages;

    if (!pendingMessages.ContainsKey(id))
    {
        Console.WriteLine($"Pending messages does not contain key {id} ");
        return null;
    }

    messages = pendingMessages[id].ToList();
    pendingMessages[id].Clear();

    foreach (var msg in messages)
    {
        Console.WriteLine($"Returned message: ${msg.From}=>{msg.To}:{msg.Body}");
    }

    return messages;
}

public void SendMessage(Message msg)
{
    if (!pendingMessages.ContainsKey(msg.To))
    {
        pendingMessages.Add(msg.To,new List<Message>());
    }

    pendingMessages[msg.To].Add(msg);
    Console.WriteLine($"{msg.From}=>{msg.To}: {msg.Body}");
}
4

1 に答える 1