/// <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();
		}