/// <summary> /// Inicializa a instancia. /// </summary> /// <param name="attribList"></param> protected override void Initialize(IEnumerable <string> attribList) { if (attribList != null) { IIndexStore store = null; IEnumerator enumerator = attribList.GetEnumerator(); while (enumerator.MoveNext()) { store = new HashStore(); base._indexTable[enumerator.Current.ToString()] = store; } store = new HashStore(); base._indexTable["$Tag$"] = store; } }
/// <summary> /// Adiciona uma chave e um valor para o indice. /// </summary> /// <param name="key">Chave que será adicionada.</param> /// <param name="value">Valor que será adicionado.</param> public override void AddToIndex(object key, object value) { IDictionaryEnumerator enumerator = (value as Hashtable).GetEnumerator(); while (enumerator.MoveNext()) { string indexKey = (string)enumerator.Key; IIndexStore store = base._indexTable[indexKey] as IIndexStore; if (store == null) { if (indexKey == "$Tag$") { store = new HashStore(); base._indexTable[indexKey] = store; } else { string str2 = base.ConvertToNamedTagKey(indexKey); store = base._indexTable[str2] as IIndexStore; if (store == null) { store = new HashStore(); base._indexTable[str2] = store; } } } if (store != null) { object obj2 = enumerator.Value; if (obj2 != null) { store.Add(obj2, key); } else { store.Add(CacheNull.Value, key); } } } }