コード例 #1
0
        public override void VisitView(ResolvedTreeRoot view)
        {
            lastMetadata = view.Metadata;
            var wrapperClassName = CreateControlClass(className, view.Metadata.Type);
            emitter.BuilderDataContextType = view.DataContextTypeStack?.DataContextType;
            // build the statements
            emitter.PushNewMethod(DefaultViewCompilerCodeEmitter.BuildControlFunctionName);
            var pageName = emitter.EmitCreateObject(wrapperClassName);
            emitter.EmitSetAttachedProperty(pageName, typeof(Internal).FullName, Internal.UniqueIDProperty.Name, pageName);
            if (view.Metadata.Type.IsAssignableFrom(typeof(DotvvmView)))
            {
                foreach (var directive in view.Directives)
                {
                    emitter.EmitAddDirective(pageName, directive.Key, directive.Value);
                }
            }

            controlName = pageName;

            base.VisitView(view);

            emitter.EmitReturnClause(pageName);
            emitter.PopMethod();
        }
コード例 #2
0
 public virtual void VisitView(ResolvedTreeRoot view)
 {
     DefaultVisit(view);
 }
コード例 #3
0
 public virtual void VisitView(ResolvedTreeRoot view)
 {
     DefaultVisit(view);
 }