private void RegisterGenericTypeHandlers()
        {
			GenericCollectionTypeHandler handler = new GenericCollectionTypeHandler();
    		handler.RegisterSupportedTypesWith(delegate(Type type) 
			{
				RegisterGenericTypeHandler(type, handler);
    		});

#if NET_3_5 && ! CF
			_config.Reflector().RegisterCollection(new GenericCollectionTypePredicate(typeof(HashSet<>)));
#endif 

			Type[] dictionaryTypes = new Type[] {
				typeof(ActivatableDictionary<,>),
				typeof(Dictionary<,>),
#if !SILVERLIGHT
				typeof(SortedList<,>),
#if !CF
				typeof(SortedDictionary<,>),
#endif
#endif
			};
            _config.RegisterTypeHandler(new GenericTypeHandlerPredicate(dictionaryTypes), new MapTypeHandler());

        }
		protected override void Configure(IConfiguration config)
		{
			GenericCollectionTypeHandler collectionHandler = new GenericCollectionTypeHandler();

			RegisterHandlerFor(config, typeof(List<int>), collectionHandler);
			RegisterHandlerFor(config, typeof(LinkedList<int>), collectionHandler);
			RegisterHandlerFor(config, typeof(Stack<int>), collectionHandler);
			RegisterHandlerFor(config, typeof(Queue<int>), collectionHandler);

			_helper = NewCollectionHelper();
			config.ObjectClass(_helper.ItemType).CascadeOnDelete(true);
		}