private static SubjectProxy <TMessage> Subject <TMessage>(object sender) { SubjectProxy <TMessage> msgHandler = null; Type type = typeof(TMessage); if (!handlers.ContainsKey(type)) { try { msgHandler = new SubjectProxy <TMessage>(MessageManager.Subject <TMessage>(sender), IsNeedAsyncRegister); lock (InnerLocker) handlers[type] = msgHandler; } catch (SocketException ex) { System.Diagnostics.Trace.WriteLine(ex.Message); } } else { msgHandler = handlers[type] as SubjectProxy <TMessage>; } return(msgHandler); }