public void AddSelector(IDeserializerSelector selector, int? index = null)
 {
     using (_lock.EnterWriteScope())
     {
         if (index != null)
             _selectors.Insert(index.Value, selector);
         else
             _selectors.Add(selector);
     }
 }
        public CollectionDeserializerSelector(IMapper mapper, IDeserializerSelector recursiveSelector, IObjectContextFactory objectContextFactory)
        {
            if (mapper == null)
                throw new ArgumentNullException("mapper");
            if (recursiveSelector == null)
                throw new ArgumentNullException("recursiveSelector");
            if (objectContextFactory == null)
                throw new ArgumentNullException("objectContextFactory");

            _deserializer = new RecursiveDeserializer(mapper, recursiveSelector, objectContextFactory, _typeConverter);
        }
        public RecursiveDeserializer(IMapper mapper, IDeserializerSelector recursiveSelector, IObjectContextFactory objectContextFactory, ITypeConverter typeConverter)
        {
            if (mapper == null)
                throw new ArgumentNullException("mapper");
            if (recursiveSelector == null)
                throw new ArgumentNullException("recursiveSelector");
            if (objectContextFactory == null)
                throw new ArgumentNullException("objectContextFactory");
            if (typeConverter == null)
                throw new ArgumentNullException("typeConverter");

            _mapper = mapper;
            _recursiveSelector = recursiveSelector;
            _objectContextFactory = objectContextFactory;
            _typeConverter = typeConverter;
        }
 public void RemoveSelector(IDeserializerSelector selector)
 {
     using (_lock.EnterWriteScope())
         _selectors.Remove(selector);
 }