public static CodeBlock mapControlBuilder(this ControlBuilder controlBuilder) { var codeBlock = new CodeBlock(); codeBlock.VirtualPath = controlBuilder.property <string>("VirtualPathString"); codeBlock.ID = controlBuilder.ID; codeBlock.BuilderType = controlBuilder.type().str(); if (controlBuilder.ControlType.notNull()) { codeBlock.ControlType = controlBuilder.ControlType.str(); } codeBlock.Line = controlBuilder.property <int>("Line"); codeBlock.Column = controlBuilder.property <int>("Column"); codeBlock.TagName = controlBuilder.TagName; codeBlock.SkinID = controlBuilder.property <string>("SkinID"); codeBlock.IsHtmlControl = controlBuilder.property <bool>("IsHtmlControl"); codeBlock.IsHtmlControl = controlBuilder.property <bool>("HasAspCode"); codeBlock.Filter = controlBuilder.property <string>("Filter"); foreach (var simplePropertyEntry in (IEnumerable)controlBuilder.property("SimplePropertyEntries")) { if (simplePropertyEntry is SimplePropertyEntry) { codeBlock.SimplePropertyEntries.add(((SimplePropertyEntry)simplePropertyEntry).Name, ((SimplePropertyEntry)simplePropertyEntry).PersistedValue); } else { "in controlBuilder.SimplePropertyEntries there was an unsupported type: {0}".error(simplePropertyEntry.type()); } } foreach (var eventEntry in (IEnumerable)controlBuilder.property("EventEntries")) { codeBlock.EventEntries.add(eventEntry.property("Name").str(), eventEntry.property("HandlerMethodName").str()); } var content = controlBuilder.property("Content"); if (content.notNull()) { codeBlock.Content = content.str(); } if (controlBuilder.property("BlockType").notNull()) { codeBlock.BlockType = controlBuilder.property("BlockType").str(); } foreach (var subBuilder in (IEnumerable)controlBuilder.property("SubBuilders")) { if (subBuilder is string) { codeBlock.SubBlocks.Add(new CodeBlock() { BlockType = subBuilder.type().str(), Content = subBuilder.str() }); } else { codeBlock.SubBlocks.Add(mapControlBuilder((ControlBuilder)subBuilder)); } } return(codeBlock); }