/// <summary> /// Gets the <see cref="NodeListener"/>s for type <paramref name="type"/>. /// </summary> /// <param name="type">The type for which to get the listeners.</param> /// <returns>Returns the listeners for this particular type.</returns> private IEnumerable<RecordListener> GetListeners(ITypeDefinition type) { // validate arguments if (type == null) throw new ArgumentNullException("type"); // loop through all the registered type listeners return listenerLookup.Where(candidate => type.IsAssignable(candidate.Key)).SelectMany(candidate => candidate.Value).ToList(); }