예제 #1
0
 private static string GetKey(ClrTag tag, string name)
 {
     if (tag._name != null)
     {
         return(string.Concat(tag._name, '.', name));
     }
     return(name);
 }
예제 #2
0
 private ClrTag(ClrTag parent, string name)
 {
     _name = GetKey(parent, name);
     _list = new List <string>(parent._list.Count + 1);
     _list.AddRange(parent._list);
     _list.Add(name);
     _type = null;
 }
예제 #3
0
 public object this[string name]
 {
     get
     {
         ClrTag tag;
         string key = GetKey(this, name);
         if (_static.TryGetValue(key, out tag))
         {
             return(tag);
         }
         tag          = new ClrTag(this, name);
         _static[key] = tag;
         return(tag);
     }
 }