예제 #1
0
        public LookupPayloadIndex(
            string indexName,
            IKeyExtractor <TValue> indexedKeyExtractor,
            IKeyExtractor <TValue> masterKeyExtractor,
            ISerializer serializer,
            TimeSpan?expiry)
        {
            _indexCollectionPrefix = indexName;
            _masterKeyExtractor    = masterKeyExtractor;
            Extractor = indexedKeyExtractor;

            _indexWriter = new LookupIndexWriter <TValue>(
                Extractor,
                serializer.Serialize,
                expiry,
                GenerateSetName);

            _indexValueReader = new LookupIndexReader <TValue>(GenerateSetName, serializer.Deserialize <TValue>);
        }
예제 #2
0
        public LookupKeyedIndex(
            string indexName,
            IKeyExtractor <TValue> indexedKeyExtractor,
            IKeyExtractor <TValue> masterKeyExtractor,
            Func <string, TValue> masterValueGetter,
            TimeSpan?expiry)
        {
            _indexCollectionPrefix = indexName;
            _masterValueGetter     = masterValueGetter;
            Extractor = indexedKeyExtractor;


            _indexWriter = new LookupIndexWriter <TValue>(
                Extractor,
                masterKeyExtractor.ExtractKey,
                expiry,
                GenerateSetName);

            _indexValueReader = new LookupIndexReader <string>(GenerateSetName, value => value);
        }