コード例 #1
0
        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);
        }
コード例 #2
0
        internal PropertyNameNode TraverseOrCreate(string key)
        {
            PropertyNameNode node = root;

            foreach (string tok in key.Split('.'))
            {
                if (tok == "")
                {
                    continue;
                }
                node = node.GetOrCreate(tok);
            }
            return(node);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 public void Dispose()
 {
     root?.Dispose();
     root = null;
 }
コード例 #5
0
 public PropertyNameTree()
 {
     root = new PropertyNameNode("");
 }