Example #1
0
        public static void EnterNode <T>(INode node, ref T registry, Func <T> factory)
            where T : class, ILayeredNameRegistry
        {
            EnterNodeRegistryAction action = EnterNode(node, registry);

            CreateRegistry(action, ref registry, factory);

            registry?.AddLayer(node as IScope);
        }
Example #2
0
 public static void CreateRegistry <T>(EnterNodeRegistryAction action, ref T registry, Func <T> factory)
     where T : class, INameRegistry
 {
     if (action == EnterNodeRegistryAction.Nullify)
     {
         registry = null;
     }
     else if (action == EnterNodeRegistryAction.CreateNew)
     {
         registry = factory();
     }
     else if (action != EnterNodeRegistryAction.None)
     {
         throw new Exception();
     }
 }