public void AddCodeVisitor(CodeVisitorBase visitor, object key)
 {
     if (visitor == null) throw new ArgumentNullException("visitor");
       if (key == null) throw new ArgumentNullException("key");
       CompositeCodeVisitor visitorsForType;
       _visitors.TryGetValue(key, out visitorsForType);
       if (visitorsForType == null) {
     visitorsForType = new CompositeCodeVisitor();
     _visitors.Add(key, visitorsForType);
       }
       visitorsForType.AddCodeVisitor(visitor);
 }
 public override void AddCodeVisitor(CodeVisitorBase visitor)
 {
     if (visitor == null) throw new ArgumentNullException("visitor");
       _visitors.Add(visitor);
 }
 public abstract void AddCodeVisitor(CodeVisitorBase visitor);
 void ICodeVisitorRegistry.Register(CodeVisitorBase visitor, TypeDefinition scopedAtType)
 {
     AddCodeVisitor(visitor, scopedAtType);
 }
 void ICodeVisitorRegistry.Register(CodeVisitorBase visitor)
 {
     AddCodeVisitor(visitor);
 }
 public override void AddCodeVisitor(CodeVisitorBase visitor)
 {
     if (visitor == null) throw new ArgumentNullException("visitor");
       AddCodeVisitor(visitor, AssemblyKey); // AssemblyKey indicates that the visitor is valid for all types
 }