如何“自然化”自定义类并保持同步?

时间:2014-03-07 05:30:02

标签: c# class denormalization

我需要“denormalize”类在连接类中有另一个字典,其键是连接ID,值是名称。我需要保持这两个词典同步。

public class ConnectionMapping<T>
{
    private readonly Dictionary<T, HashSet<string>> _connections =
        new Dictionary<T, HashSet<string>>();

    public void Remove(T key, string connectionId)
    {
        lock (_connections)
        {
            HashSet<string> connections;

            if (!_connections.TryGetValue(key, out connections))
            {
                return;
            }

            lock (connections)
            {
                connections.Remove(connectionId);

                if (connections.Count == 0)
                    _connections.Remove(key);
            }
        }
    }     
}

更新

public class myHub : Hub
{
    private readonly static ConnectionMapping<string> _connections = 
       new ConnectionMapping<string>();
    public override Task OnDisconnected()
    {
        string name = userName;  
        _connections.Remove(name, Context.ConnectionId);
       //_connections.Remove(Context.ConnectionId); <-- I need
    }
}

如何“反规范化”?我需要使用_connections.Remove(connectionId)

0 个答案:

没有答案