Ejemplo n.º 1
0
 public void Attach(ObjectTree tree)
 {
     foreach (object reference in tree.GetAllObjects())
     {
         FieldInfo field = reference.GetType().GetField("Logger");
         if (field != null)
             field.SetValue(reference, new ActiveHook(this, tree.GetPath(reference)));
     }
 }
Ejemplo n.º 2
0
 public static void CopyHooks(object original, object copy)
 {
     ObjectTree originalTree = new ObjectTree(original);
     ObjectTree copyTree = new ObjectTree(copy);
     foreach (object originalReference in originalTree.GetAllObjects())
     {
         FieldInfo field = originalReference.GetType().GetField("Logger");
         if (field != null)
         {
             object hook = field.GetValue(originalReference);
             if (hook is ActiveHook)
             {
                 string path = originalTree.GetPath(originalReference);
                 if (copyTree.Contains(path))
                 {
                     object copyReference = copyTree.GetObject(path);
                     field.SetValue(copyReference, (hook as ActiveHook).Clone());
                 }
             }
         }
     }
 }