コード例 #1
0
        public void PopContext()
        {
            var c = Context;

            Context = Stack.Pop();
            if (c.ParentHolder != null)
            {
                if (Context.Nesting)
                {
                    Context.ChildLogger = c.Logger;
                    Context.Holders     = TemplatorUtil.MergeHolders(Context.Holders, c.Holders.Values);
                }
                else
                {
                    c.ParentHolder.Children = TemplatorUtil.MergeHolders(c.ParentHolder.Children, c.Holders.Values);
                }
            }
            if (Context.NestingBefore)
            {
                Context.ChildResultBefore.Append(c.Result);
            }
            else if (Context.NestingAfter)
            {
                Context.ChildResultAfter.Append(c.Result);
            }
            else
            {
                AppendResult(c.Result);
            }
        }
コード例 #2
0
 private void CollectHolderResults(string mergeInto = null)
 {
     if (StackLevel > 0)
     {
         var cleared = _clearedSyntaxError;
         //this is an additional check, dont increase errors
         if (!Xml)
         {
             //xml has to be checked as as plain text but it does not have to have a collection end tag as plain text template
             LogSyntaxError("Collection Level not cleared: levels at {0}, possibly missing end holder of a collection/repeat holder, or missed StartOver()", StackLevel);
         }
         _clearedSyntaxError = cleared;
     }
     TemplatorUtil.MergeHolders(Holders, Context.Holders.Values, mergeInto);
 }