public void RegisterProcessor <T>(ISharedMessageProcessor processor) where T : AbstractSharedMessage { if (_processors.ContainsValue(processor)) { throw new InvalidOperationException("Repeated processor registration for type :: " + processor.GetType().FullName); } _processors.Add(typeof(T), processor); }
public void UnregisterProcessor(ISharedMessageProcessor processor) { Type keyToRemove = null; foreach (var kvp in _processors) { if (kvp.Value == processor) { keyToRemove = kvp.Key; break; } } _processors.Remove(keyToRemove); }