コード例 #1
0
        protected override void Visit(RazorDirectiveChunk chunk)
        {
            var tokensBlock = new CSharpBlock();

            using (_context.Builder.UseBlock(tokensBlock))
            {
                Accept(chunk.Children);
            }

            IRazorDirective directive;
            var             tokens = tokensBlock.Children.OfType <RazorDirectiveToken>().ToList();

            if (chunk.Descriptor.Type == RazorDirectiveDescriptorType.SingleLine)
            {
                directive = new RazorSingleLineDirective()
                {
                    Name   = chunk.Name,
                    Tokens = tokens,
                };
            }
            else
            {
                var directiveChildren = tokensBlock.Children.Except(tokens);
                var directiveBlock    = new RazorBlockDirective()
                {
                    Name   = chunk.Name,
                    Tokens = tokens,
                };

                directiveBlock.Children.AddRange(directiveChildren);
                directive = directiveBlock;
            }

            _context.Builder.Add(directive);
        }
 protected virtual void Visit(RazorDirectiveChunk chunk)
 {
 }