internal bool GetCachedEntry(string key, out PropertyCacheEntry entry) { entry = new PropertyCacheEntry(); PropertyNameNode node = Traverse(key); if (node != null) { entry = node.Cache; return(entry.PropertyType != null); } return(false); }
internal PropertyNameNode TraverseOrCreate(string key) { PropertyNameNode node = root; foreach (string tok in key.Split('.')) { if (tok == "") { continue; } node = node.GetOrCreate(tok); } return(node); }
internal PropertyNameNode Traverse(string key) { PropertyNameNode node = root; foreach (string tok in key.Split('.')) { if (tok == "") { continue; } node = node[tok]; if (node == null) { break; } } return(node); }
public void Dispose() { root?.Dispose(); root = null; }
public PropertyNameTree() { root = new PropertyNameNode(""); }