private void ProcessClassReplicates(IClass parentClass, IWalkCallbacks <ReplicationContext> callbacks, ReplicationContext context) { BaseNode.IBlockList ClassReplicateBlocks = (BaseNode.IBlockList)parentClass.ClassReplicateBlocks; List <BaseNode.INode> ReplicatedNodeList = new List <BaseNode.INode>(); if (ReplicateBlockList(ClassReplicateBlocks, ReplicatedNodeList, callbacks, context)) { parentClass.FillReplicatedList(nameof(IClass.ClassReplicateBlocks), ReplicatedNodeList); List <ICompiledReplicate> ReplicateList = new List <ICompiledReplicate>(); foreach (BaseNode.INode Node in ReplicatedNodeList) { IClassReplicate ReplicateItem = Node as IClassReplicate; Debug.Assert(ReplicateItem != null); ReplicateList.Add(ReplicateItem); } context.ReplicateTable.Clear(); foreach (KeyValuePair <string, List <string> > Entry in context.GlobalReplicateTable) { context.ReplicateTable.Add(Entry.Key, Entry.Value); } CheckReplicates(ReplicateList, context); } }